【问题标题】:Get Non Expiry S3 URL to store it to dynamodb flutter获取 Non Expiry S3 URL 以将其存储到 dynamodb flutter
【发布时间】:2021-05-29 10:27:19
【问题描述】:

伙计们,我正在开发一个应用程序,该应用程序需要将图像上传到 s3 并将 URL 保存在 dynamodb 数据库中,但是在上传后,我生成的 geturl 函数会在一定时间内生成过期的 URL,我如何获得一个没有过期的网址

Future<String> getUrl() async {
try {
  print('In getUrl');
  String key = _uploadFileResult;

  try {
    GetUrlResult result = await Amplify.Storage.getUrl(key: key);
    print(result.url);
    return result.url;
  } on StorageException catch (e) {
    print(e.message);
  }
} catch (e) {
  print('GetUrl Err: ' + e.toString());
}

}

【问题讨论】:

    标签: amazon-web-services flutter amazon-s3 amplify


    【解决方案1】:

    所有 S3 预签名 URL 都有一个过期时间。存在预签名 URL 以在有限的时间内共享私有 S3 对象。

    如果这对您来说是个问题,那么一种选择是在适当的情况下公开该对象,并简单地以https://mybucket.s3.amazonaws.com/images/cat.png 形式存储其 URL。

    或者,编写一个响应特定 URL 的小型应用程序(例如 https://myapi.mydomain.com/images/cat.png 并让该应用程序为相关对象创建一个预签名的 URL 并发出 302 重定向以将客户端发送到临时的预签名网址。

    【讨论】:

      猜你喜欢
      • 2020-10-31
      • 1970-01-01
      • 2021-12-29
      • 1970-01-01
      • 2019-10-21
      • 2021-11-29
      • 2020-03-26
      • 1970-01-01
      • 2018-07-04
      相关资源
      最近更新 更多