Node.js 如何在节点js的预签名url请求中发送内容md5头

Node.js 如何在节点js的预签名url请求中发送内容md5头,node.js,amazon-s3,md5,pre-signed-url,Node.js,Amazon S3,Md5,Pre Signed Url,我想检查上传到S3的对象的完整性,所以我想包括md5头,这样每当soomeone使用该url时,他们应该只上传有效的内容。 仅供参考:我会将md5内容从UI传送到我的服务中 const params = { Bucket: bucket, Key: id, Expires: 300, Metadata: metadata, }; this.s3ClientAccelerate.getSignedUrl('putObject', params)

我想检查上传到S3的对象的完整性,所以我想包括md5头,这样每当soomeone使用该url时,他们应该只上传有效的内容。 仅供参考:我会将md5内容从UI传送到我的服务中

const params = {
    Bucket: bucket,
      Key: id,
      Expires: 300,
      Metadata: metadata,
    };

this.s3ClientAccelerate.getSignedUrl('putObject', params);

只需像这样添加ContentMD5

const params = { Bucket: bucket, Key: id, Expires: 300, Metadata: metadata,ContentMD5: md5, };

并确保您在客户端的标题中传递Content-MD5。

signedUrl
,正如我们从其名称可以理解的那样,使用所需的标题和用户的自定义标题对URL进行签名。如果您想从已签名的URL验证请求,只需在
signedUrl
创建处附加相关哈希,如果请求的签名与已创建的
signedUrl
的签名不匹配,它将以
SignatureDesNotMatch
错误响应

const params = {
    Bucket: bucket,
      Key: id,
      Expires: 300,
      Metadata: metadata,
      MD5: uiMD5
    };

this.s3ClientAccelerate.getSignedUrl('putObject', params);