我正在尝试使用预签名的 URL 获取 pdf 文件以进行电子签名。我使用 Amplify Storage 生成 URL。然后我向 HelloSign 函数提供 URL,以将文件带入嵌入窗口。我可以使用打开文档,window.open
但是这种其他方法会带来SignatureDoesNotMatchThe request signature we calculated does not match the signature you provided.
错误。
The request signature we calculated does not match the signature you provided. Check your key and signing method.
key: string = 'bucketname/path/to/file.pdf'
expires: number = 60
const url = await Storage.get(key, {
level: 'public',
cacheControl: 'no-cache',
signatureVersion: 'v4',
ContentType: 'application/pdf',
expires: 60,
customPrefix: {
public: '',
protected: '',
private: '',
},
})
hellosign.open(url, {
clientId,
skipDomainVerification: true,
})
我在 Github 上找到的一个修复是在使用 SDKsignatureVersion
初始化类实例时包含。S3
但是我没有使用 SDK,所以我尝试在配置 Amplify 时提供它,如下所示:
AWSS3: {
bucket,
region,
signatureVersion: 'v4',
},
不用说它没有解决问题。我在文档中找不到对此的任何引用,因为该Amplify.configure
函数包含any
他们的文档。
我尝试单击预签名的 URL,并且能够毫无问题地下载文档。我检查了请求,并看到了与来自hellosign.open
. 有什么想法我可以尝试吗?