使用 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)
我正在使用 AWS S3 分段上传来分块上传大文件。
https://docs.aws.amazon.com/AmazonS3/latest/dev/HLuploadFileJava.html
我也在使用从前端分块上传文件。
所以,正在上传的文件会暂时分块上传到服务器,然后分块上传到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 的访问
我正在尝试使用 Java
在亚马逊 S3 上上传大文件(超过 1 GB)我正在使用 AWS S3 分段上传来分块上传大文件。 https://docs.aws.amazon.com/AmazonS3/latest/dev/HLuploadFileJava.html
我也在使用从前端分块上传文件。
所以,正在上传的文件会暂时分块上传到服务器,然后分块上传到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 的访问