首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >以编码方式发送图像并在解码后上传到s3

以编码方式发送图像并在解码后上传到s3
EN

Stack Overflow用户
提问于 2015-11-15 19:27:59
回答 3查看 655关注 0票数 2

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

我对此进行了研究,并找到了这3种可能的解决方案。

  1. 将图像直接上传到s3..this是不可能的,因为在这种情况下,我们必须公开aws键,而我们不能。
  2. 将所有图像添加到队列中,并运行少量作业。在这种情况下,作业将稍后将图像从服务器上传到s3,然后重新调整大小。这是不可能的,因为这也会消耗一些带宽,并且肯定会影响服务器性能,而且我们已经配置了aws,所以一旦部署服务器,映像就会丢失,因此不会使用。
  3. 使用javascript.在本例中,我们将从javascript将图像编码为base64,并使用ajax将映像发送到服务器,然后尝试在那里解码并保存到某个地方,然后将其上传到s3。

因此,我的问题是,它会节省时间上传一个沉重的图像使用第三选项?我可以发送图像编码到服务器,但它会节省用户的时间上传吗?

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

EN

回答 3

Stack Overflow用户

发布于 2015-11-16 01:19:44

如果可能的话,您应该直接将上传到S3。这避免了文件的“双重处理”,是一种更可伸缩的解决方案。

您关心的是“公开AWS密钥”。没有必要担心。您可以使用生成具有有限权限集的临时、有时间限制的凭据。它的工作方式如下:

  • 您的应用程序对用户进行身份验证和检查,以确保他们被授权将对象上载到S3。
  • 您的应用程序调用安全令牌服务,并请求一组临时凭据,其权限仅允许上载到亚马逊S3中的特定桶和子目录
  • 将这些凭据传递给您的用户,或者在网页中使用它们,以便他们可以上传对象。

AWS的关键概念是大规模的设计。直接上传到Amazon使这成为可能,而上传到您自己的服务器首先会造成瓶颈(而且成本更高!)

票数 2
EN

Stack Overflow用户

发布于 2015-11-15 23:17:04

在处理图像处理时,数字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)。

票数 1
EN

Stack Overflow用户

发布于 2015-11-22 21:38:27

我不确定您是否已经这样做了,但是我已经使用javascript来完成这个任务,我通过在另一个服务器上保存映像,然后将它们转移到s3来完成您的工作,但是使用javascript,您可以直接转到s3,您可以在图像到达后添加事件来处理它们。

  • 使用认知获得未授权用户/经过身份验证的用户访问。
  • 以相关桶中Authenicated用户的身份授予权限。
  • 编辑配置编辑器中的CORS。
  • 使用javascript中的代码可以随心所欲地做任何事情。

我希望这能帮到你。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33723982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档