【问题标题】:S3 access private bucket filesS3 访问私有存储桶文件
【发布时间】:2019-01-25 02:10:08
【问题描述】:

我已经解决了所有现有问题,但似乎无法满足我的要求。

我有一个带有 10000 个文件的 S3 private bucket,通过 Nodejs 服务器私下访问以在我的 Angular 应用程序中显示每页至少 25 个。

我发现了多种解决方案,这些解决方案在我看来似乎效率低下。

  • 为文件生成预签名 URL。
  • 通过 Nodejs API 从 S3 拉取图像

要显示10个或更多需要每次生成签名的Url,这是一个耗时的过程。并且使用 s3.getObject 方法通过 api 拉取图像给了我一个缓冲区数据,将其转换为 Base64 很难在客户端处理,并且获取每个都消耗时间。

这些是我不知道的任何解决方案吗?如何在不影响用户体验的情况下实施。

PS:我的 Bucket 是 private 不公开

【问题讨论】:

  • 你的目标是什么?仅将内容保护给授权用户?或者您只想将图片从私有存储桶传送给您的网站用户?
  • 为什么说生成签名 URL 是一个耗时的过程?即使有成千上万的事情要做(您不需要,因为每页只有 25 个),每个 URL 的时间大约为毫秒,您可以并行执行。
  • @JohnHanley 仅向授权用户保护内容
  • 唯一的“安全”解决方案是生成预签名 URL。我还会使用带有预签名 URL 的 CloudFront 来交付内容。
  • 考虑使用签名 cookie 的 ceskamx 回答。我忘记了这个选项。

标签: node.js angular amazon-web-services amazon-s3 aws-sdk


【解决方案1】:

您是否尝试过签名的 cookie

我认为这可能会对您有所帮助,只需考虑 AWS CloudFront 并签署一次 cookie 以让客户端在此之后直接访问任何文件。

There is some reference.

此外,CloudFront 将为您提供更多好处,例如优化访问速度、将 SSL 证书附加到您的 S3 存储桶等等。

“对不起我的英语”

【讨论】:

  • 感谢您的参考,让我了解签名的 cookie
猜你喜欢
  • 2017-03-19
  • 1970-01-01
  • 1970-01-01
  • 2018-01-14
  • 2020-02-29
  • 1970-01-01
  • 2020-06-15
  • 2018-10-26
  • 1970-01-01
相关资源
最近更新 更多