首页 > 解决方案 > 为什么我不能在放大颤动中访问我的 s3 对象?

问题描述

在 chrome 上显示的消息

获取 S3 URL 的函数

Future<String> getUrlS3(String UploadKey) async {
    try {
      GetUrlResult result =
      await Amplify.Storage.getUrl(key: UploadKey);
      return(result.url);
    } on StorageException catch (e) {
      return(e.message);
    }
  }

获取url的函数

Future<void> cet() async {
    String store = await S3Helper.getUrlS3('cover807c3f99-2bcb-44e3-be80-4899ea2355d8Attac');
    print(store);
  }

当我点击链接时,我得到拒绝访问页面。我可以看到对象的唯一方法是,如果我公开特定对象,我也通过 Auth Cognito 登录,所以我应该有权查看它们

标签: flutteraws-amplifyaccess-denied

解决方案


我认为您需要将访问级别选项传递给您的 getUrlS3。像这样的东西

S3DownloadFileOptions options = S3UploadFileOptions(
  accessLevel: StorageAccessLevel.protected,
  metadata: metadata,
);

推荐阅读