【发布时间】:2016-02-16 21:05:16
【问题描述】:
我正在尝试在 s3 上上传非常重的文件。现在图像首先转到服务器临时,然后我将其上传到 s3。但是这个过程很耗时,如果多个用户同时上传大量图像,则会消耗高带宽,从而影响生产站点。鉴于我还有 3 个尺寸要上传,因此我正在调整上传图像的大小,同时将其他 3 个调整大小的图像发送到 s3。
我对此进行了研究,发现了这 3 种可能的解决方案..
- 将图像直接上传到 s3..这被排除在外,因为在这种情况下我们必须公开 aws 密钥,而我们不能这样做。
- 在队列中添加所有图像并运行一些作业..在这种情况下,作业将在调整图像大小后稍后将图像从服务器上传到 s3。这被排除了,因为这也会消耗一些带宽并且肯定会影响服务器性能,而且我们还配置了 aws-eb,所以一旦我们部署服务器,图像就会丢失,因此无法使用。
- 使用 javascript.. 在这种情况下,我们将从 javascript 将图像编码为 base64,并使用 ajax 将图像发送到服务器,然后尝试在那里解码并将其保存在某处然后上传到 s3。
所以我的问题是,它会节省使用第三个选项上传重图像的时间吗? 我可以将编码的图像发送到服务器,但它会为用户节省一些上传时间吗?
如果没有,那么在将大量图像上传到 s3 时,我还能做些什么来节省服务器的时间和带宽。 请帮忙。
【问题讨论】:
-
“在这种情况下,我们必须公开 aws 密钥,而我们不能” 如果这是真的,那么某个地方的某个人不了解 AWS 的工作原理。您的 AWS 访问密钥不是秘密。它旨在以签名的 URL 和表单形式公开。这样做是正常的、标准的做法。您的密钥不会暴露,没有它,访问密钥将毫无用处。
标签: javascript php image amazon-web-services amazon-s3