java - 如何在 Amazon s3 Bucket 中压缩文件并获取其 URL

标签 java spring amazon-web-services amazon-s3

我在 Amazon s3 存储桶中有一堆文件,我想压缩这些文件并使用 Java Spring 通过 S3 URL 下载获取内容。

最佳答案

S3 不是文件服务器,也不提供操作系统文件服务,例如数据操作。

如果有很多“巨大”的文件,你最好的选择是

  1. 启动一个简单的 EC2 实例
  2. 将所有这些文件下载到 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/

相关文章:

multithreading - Spring:从 TaskExecutor 线程访问 JPA 存储库

java - Tomcat 上的简单 Java Web 应用程序

amazon-web-services - 是否可以从现有的 x86-64 镜像构建 arm64 镜像?

java - 如何使用 Java 和 apache poi 选择 Excel 中的所有单元格

java - 如何正确取消引用缓冲区?

java - 包声明上面的 javadoc 注释有什么作用?

spring - 为什么Spring的PathMatchingResourcePatternResolver不匹配 "*"?

amazon-web-services - 在AWS Cognito中使用AdminCreateUser创建具有自定义属性的用户

linux - AWS EC2 和 Tomcat startup.sh

java - 在 Java 中调整 base64 字符串图像的大小