使用Java在AmazonS3上上传大文件(超过1GB):大文件临时占用服务器大量空间

使用Java在AmazonS3上上传大文件(超过1GB):大文件临时占用服务器大量空间,java,amazon-web-services,amazon-s3,large-data,large-files,Java,Amazon Web Services,Amazon S3,Large Data,Large Files,我正在尝试使用Java在AmazonS3上上传大文件(超过1GB) 我使用AWS S3多部分上传来上传大块的大文件。 我还使用从前端上传文件的块 因此,正在上传的文件将临时分块上传到服务器上,并分块上传到S3上。 现在的问题是,这种方法会给服务器带来巨大的负载,因为这会暂时占用服务器空间。如果多个用户试图同时上载大文件,则会产生问题 是否有任何方法可以直接将文件从用户系统分块上传到AmazonS3,而无需将文件临时存储在服务器上 如果直接通过前端上传文件,则存在密钥暴露的主要风险。您应

我正在尝试使用Java在AmazonS3上上传大文件(超过1GB)

  • 我使用AWS S3多部分上传来上传大块的大文件。

  • 我还使用从前端上传文件的块

因此,正在上传的文件将临时分块上传到服务器上,并分块上传到S3上。 现在的问题是,这种方法会给服务器带来巨大的负载,因为这会暂时占用服务器空间。如果多个用户试图同时上载大文件,则会产生问题

是否有任何方法可以直接将文件从用户系统分块上传到AmazonS3,而无需将文件临时存储在服务器上


如果直接通过前端上传文件,则存在密钥暴露的主要风险。

您应该直接从带有签名URL的客户端上传文件 这方面有很多文档

预签名的URL很有用,但您不要求它们具有AWS安全凭据或权限

您还可能对限制用户能够上传的大小感兴趣


考虑将签名URL作为客户端访问特定S3位置的临时凭证。这些凭据将在短时间内过期,因此安全问题较少,但请记住适当限制已签名URL的访问

您应该直接利用已签名URL的客户端上载 这方面有很多文档

预签名的URL很有用,但您不要求它们具有AWS安全凭据或权限

您还可能对限制用户能够上传的大小感兴趣


考虑将签名URL作为客户端访问特定S3位置的临时凭证。这些凭证将在短时间内过期,因此安全问题较少,但请记住适当限制已签名URL的访问

可能有用吗?另一种方法是使用EFS将文件存储在实例之外。如果您实现tvm,您可以使用临时凭据并直接从客户端上载可能有用吗?另一种方法是使用EFS在实例外部存储文件。如果您实现tvm,您可以使用临时凭据并直接从客户端上载。非常感谢您提供此解决方案。这很顺利!如何在生成的签名URL中添加对所有上载对象的公共读取访问权限?看看这个帮助是否适用于ruby,我正在使用Java。让我们看看如何在您正在使用的Java框架中设置“x-amz-acl”或“acl”。很抱歉,我无法在这一特定部分为您提供帮助:)非常感谢您提供此解决方案。这很顺利!如何在生成的签名URL中添加对所有上载对象的公共读取访问权限?看看这个帮助是否适用于ruby,我正在使用Java。让我们看看如何在您正在使用的Java框架中设置“x-amz-acl”或“acl”。很抱歉,我无法在该特定部分为您提供帮助:)