我正在尝试在s3上传非常繁重的文件。现在图像首先进入服务器temp,然后我将其上传到s3。但是这个过程需要时间,如果多个用户同时上传大量图像,则会消耗高带宽,影响生产站点。鉴于我有3个以上的尺寸要上传,因此我正在调整上传的图像大小,将其他3个已调整大小的图像一起发送到s3。
我对此进行了研究,并找出了这3种可能的解决方案..
所以我的问题是它是否会节省使用第三选项上传重图像的时间? 我可以将图像编码发送到服务器,但是它会为用户节省一些上传时间吗?
如果没有,那么我还可以做些什么来节省服务器的时间和带宽,同时将重图像上传到s3。 请帮忙。
答案 0 :(得分:2)
如果可能,您应直接上传到Amazon S3 。这避免了双重处理'这些文件是一种更具可扩展性的解决方案。
您担心"暴露AWS密钥"。没有必要担心。您可以使用Security Token Service使用一组有限的权限生成临时的,有时间限制的凭据。它的工作原理如下:
AWS的关键概念是大规模设计。直接上传到Amazon S3可以实现这一点,而上传到您自己的服务器首先会导致瓶颈(并且花费更多钱!)。
答案 1 :(得分:1)
在处理图像处理时,数字2实际上是推荐选项。您还可以使用Lambda函数进行图像转换。 (http://docs.aws.amazon.com/lambda/latest/dg/walkthrough-s3-events-adminuser.html)
只要将图像添加到特定的S3存储桶,就会触发作业。
如果需要,您还可以将图像直接上传到S3(http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingHTTPPOST.html)
答案 2 :(得分:0)
我不确定你是否已经这样做了,但我已经使用了javascript sdk来做这件事,我正在做你在做什么,将图像保存在另一台服务器上,然后将它们转移到s3,但是使用javascript sdk,你可以直接进入s3,你可以添加事件来处理图像到达后。
我希望这会有所帮助。