#3885·uppy

为 @uppy/AWS-s3-multipart 和 @uppy/companion 支持其他 Amazon S3 检查和算法

作者: daghendrik创建于 2022年7月14日更新于 2026年9月1日
标签FeatureAWS S3

Amazon S3 的 PutObject 函数现在允许您在将每个对象上传到 S3 时指定使用四种广泛使用的校验和算法之一 (SHA-1SHA-256CRC-32CRC-32C),除了 MD5。 (更多详细信息请参阅 Amazon 的 2022 年 2 月的博客文章:新增的校验和算法用于 Amazon S3)

如果 Uppy 支持此功能,可以在上传 S3 多部分文件时选择除 MD5 以外的其他算法,以满足我们的需求(速度、安全性等)。

@hguillermo 在 https://AWS.com/transloadit/uppy/issues/3391 问题中创建了一个 gist,说明了此功能的工作原理(注释)。

我认为需要在代码库中做出以下更改:

Companion

  1. uppy/companion/src/server/controllers/s3.js 中的函数 createMultipartUpload 的参数将需要允许设置 ChecksumAlgorithm (值: "CRC32"|"CRC32C"|"SHA1"|"SHA256"|string; )
  2. s3.js 中处理部分签名的函数(signPartUpload 和 batchSignPartsUpload)将添加对 s3Client 传递的对象中的 ChecksumCRC32, ChecksumCRC32C, ChecksumSHA1, ChecksumSHA256 的支持,然后将校验和值作为参数传递给 Uppy Client。

内容来源: transloadit/uppy