gpt4 book ai didi

javascript - 发送编码后的图像并在解码后上传到 s3

转载 作者:行者123 更新时间:2023-11-29 19:19:16 24 4
gpt4 key购买 nike

我正在尝试在 s3 上上传非常大的文件。现在图像首先转到服务器临时文件,然后我将其上传到 s3。但是这个过程很耗时,如果多个用户同时上传大量图像,则会消耗高带宽,从而影响生产站点。鉴于我还有 3 个尺寸要上传,因此我正在调整上传图像的大小,同时将其他 3 个调整大小的图像发送到 s3。

我对此进行了研究,发现了这 3 种可能的解决方案..

  1. 将图像直接上传到 s3..这被排除在外,因为在这种情况下我们必须公开 aws key ,而我们不能。
  2. 将所有图像添加到队列中并运行几个作业.. 在这种情况下,作业将在调整图像大小后稍后将图像从服务器上传到 s3。这被排除了,因为这也会消耗一些带宽并且肯定会影响服务器性能,而且我们配置了 aws-eb,所以一旦我们部署服务器,图像就会丢失,因此无法使用。
  3. 使用 javascript.. 在这种情况下,我们将从 javascript 将图像编码为 base64,并将使用 ajax 将图像发送到服务器,然后尝试在那里对其进行解码并将其保存在某个地方,然后然后将其上传到 s3。

所以我的问题是,使用第三个选项是否可以节省上传大图片的时间?我可以将编码后的图像发送到服务器,但它会为用户节省一些上传时间吗?

如果没有,那么在将大量图像上传到 s3 时我还能做些什么来节省服务器的时间和带宽。请帮忙。

最佳答案

如果可能的话,您应该直接上传到 Amazon S3。这避免了文件的“双重处理”,并且是一种更具可扩展性的解决方案。

您担心“暴露 AWS key ”。没有必要担心。您可以使用 Security Token Service 使用一组有限的权限生成临时的、有时间限制的凭据 .它是这样工作的:

  • 您的应用程序对用户进行身份验证并检查他们是否有权将对象上传到 Amazon S3
  • 您的应用程序调用安全 token 服务并请求一组临时凭据,这些凭据的权限仅允许上传到 Amazon S3 中的特定存储桶和子目录
  • 将这些凭据传递给您的用户,或在网页中使用它们,以允许他们上传对象

AWS 的关键概念是针对大规模进行设计。直接上传到 Amazon S3 使这成为可能,而首先上传到您自己的服务器会造成瓶颈(并且会花费更多的钱!)。

关于javascript - 发送编码后的图像并在解码后上传到 s3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33723982/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com