使用 Java 在 Amazon S3 上上传大尺寸(超过 1 GB)文件:大型文件在服务器中临时消耗大量 space

Uploading large size (more than 1 GB) file on Amazon S3 using Java: Large files temporary consuming lot of space in server

我正在尝试使用 Java

在亚马逊 S3 上上传大文件(超过 1 GB)

所以,正在上传的文件会暂时分块上传到服务器,然后分块上传到S3。 现在的问题是这种方法给服务器带来了巨大的负载,因为这会暂时消耗服务器 space。如果多个用户试图同时上传大文件,则会产生问题。

有没有什么办法可以直接将用户系统的文件分块上传到amazon S3,而不用在服务器上临时存储文件?

如果直接通过前端上传文件,那么密钥泄露的风险很大。

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

AWS SDK Presigned URL + Multipart upload

预签名 URL 很有用 if you want your user/customer to be able to upload a specific object to your bucket,但您不需要它们具有 AWS 安全凭证或权限。

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

Limit Size Of Objects While Uploading To Amazon S3 Using Pre-Signed URL

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