有没有办法从 Web 表单快速上传到 S3 AWS 存储桶?

Posted

技术标签:

【中文标题】有没有办法从 Web 表单快速上传到 S3 AWS 存储桶?【英文标题】:Is there a way to have a fast upload to an S3 AWS bucket from a web form? 【发布时间】:2022-01-22 18:34:57 【问题描述】:

我目前正在努力寻找一种解决方案,让人们以相对较高的速度从网络表单上传到 s3 存储桶。 我已经尝试过几个 nodejs 库(evaporatejs 和 resumablejs),但上传速度有点低(~3.5 MB/s)和signedUrl PUT request solution,也很慢(~2 MB/s )。 关键是,人们应该能够从世界各地上传到这个存储桶,我们谈论的文件范围从 ~50MB 到几 GB,所以速度必须相当高,因为我不想要 30分钟上传。

我想知道是否有人知道实现目标的更好方法,因为我环顾了一个星期,发现只有这些,但还不够。

所有答案将不胜感激,在此先感谢您。

【问题讨论】:

您查看过 AWS S3 分段上传吗?分段上传非常快。 好吧,我使用了多部分 POST 请求。刚刚在谷歌上搜索了你的答案,发现这是 2 种不同类型的上传。谢谢@Anss,我会尽快尝试的。 【参考方案1】:

在分段上传的同时,尝试 s3 传输加速。通过传输加速,客户端数据将加载到最近的边缘位置,然后从那里进入您的 S3 存储桶。它可以将您的表现提高 10% 到 50%。

S3 传输加速 - https://docs.aws.amazon.com/AmazonS3/latest/userguide/transfer-acceleration.html

这种方法有一个缺点。对于靠近 S3 存储桶位置的客户端,它会增加额外的跃点以将数据从客户端移动到 S3。但与使用 S3 传输加速的整体优势相比,这是一个很小的损失。

S3传输加速速度对比-http://s3-accelerate-speedtest.s3-accelerate.amazonaws.com/en/accelerate-speed-comparsion.html

【讨论】:

非常感谢您的回答。我已经尝试过了,但不幸的是输出仍然相同,上传速度很慢。

以上是关于有没有办法从 Web 表单快速上传到 S3 AWS 存储桶?的主要内容,如果未能解决你的问题,请参考以下文章

使用 go 将流文件上传到 AWS S3

在关闭之前将 docker 日志从 ec2 实例上传到 S3

从(AngularJS)单页应用程序直接(并且简单!)AJAX 上传到 AWS S3

有没有办法使用 node.js 从 url 上传到 S3?

从上传到 S3 的文件触发的无服务器框架和 AWS Step Functions(AWS 状态机)

如何在aws控制台上将war文件从s3上传到EBS环境