nra*_*aud 8 amazon-s3 aws-sdk-js
我的代码在小型虚拟机(低内存和低磁盘)中运行,它通过 HTTP 流接收未知大小的流并将其上传到 AWS S3。它可能是几个 TB,我希望能够达到 S3 的 5TB 最大值,我在流上没有收到内容长度标头,而另一家公司制造了服务器(并且它是动态压缩的,他们不既没有内存也没有磁盘空间来存储它们运行的位置)。
我们的代码位于 Node.js 中,我正在努力克服限制。
使用分段上传时,每个部分必须为 500MB(最坏情况为 5TB 除以 10000),这不适合内存,当然也不适合队列。这些部分必须位于内存中才能计算其主体哈希标头并测量其长度。
我研究了aws-chunked编码,但它需要提前了解总事务长度才能填充x-amz-decoded-content-length标头,但允许任意小的分块,与多部分相反。
我现在看到的唯一路径是重新实现分段上传的非缓冲和非排队版本,它将通过带有未签名有效负载标头的 https 发送 500MB 部分,最后一个部分用零填充,然后提交文件并然后返回剪辑文件的填充端。这看起来非常复杂,我一定错过了一些东西。
我可以使用最新版本的 AWS SDK JS 3、版本 2 或任何库。
| 归档时间: |
|
| 查看次数: |
935 次 |
| 最近记录: |