我在 Amazon s3 存储桶中有一堆文件,我想压缩这些文件并使用 Java Spring 通过 S3 URL 下载获取内容。
最佳答案
S3 不是文件服务器,也不提供操作系统文件服务,例如数据操作。
如果有很多“巨大”的文件,你最好的选择是
- 启动一个简单的 EC2 实例
- 将所有这些文件下载到 EC2 实例,压缩它们,使用新的对象名称将其重新上传回 S3 存储桶
是的,您可以使用 AWS lambda 来做同样的事情,但是 lambda 有 900 秒(15 分钟)的执行超时限制(因此建议分配更多 RAM 以提高 lambda 执行性能)
从 S3 到本地区域 EC2 实例和其他服务的流量是免费的。
如果您的主要目的只是使用 EC2/etc 服务读取同一 AWS 区域内的那些文件,那么您不需要这个额外的步骤。直接访问文件即可。
(更新): 正如@Robert Reiz 所提到的,现在您还可以使用 AWS Fargate 来完成这项工作。
注意:
建议使用 AWS API 访问和共享文件。如果您打算公开共享文件,则必须认真检查安全问题并施加下载限制。 AWS 流量从不便宜。
关于java - 如何在 Amazon s3 Bucket 中压缩文件并获取其 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43275575/