juz*_*ode 7 amazon-s3 amazon-web-services node.js aws-sdk-js
在aws-sdk v2JavaScript 中,我们使用以下方法实例化 s3 客户端:
var s3 = new AWS.S3({
accessKeyId: 'YOUR-ACCESSKEYID' ,
secretAccessKey: 'YOUR-SECRETACCESSKEY' ,
s3ForcePathStyle: true,
signatureVersion: 'v4'
});
Run Code Online (Sandbox Code Playgroud)
在这里你可以看到signatureVersion能够被指定。
在v3您实例化客户端时使用:
import { S3Client } from '@aws-sdk/client-s3';
credentials = {
accessKeyId: <ACCESS_KEY>,
secretAccessKey: <SECRET_ACCESS_KEY>
}
const client = new S3Client({
region: 'us-east-1',
credentials: credentials,
forcePathStyle: true,
})
Run Code Online (Sandbox Code Playgroud)
该文档对于如何执行此操作不是很清楚(并且没有示例)。我如何signatureVersion在 sdk 版本(v3)中为客户端指定?
我刚刚从旧的 s3 客户端迁移到新的 s3 客户端。
由于这个问题,我之前必须指定(我们必须上传带有空格的文件)。signatureVersion: 'v4'
自从迁移以来我没有遇到过这个问题,所以我认为可以安全地假设他们默认使用版本 4 签名。
由于它们没有公开signatureVersion配置选项,我想说,可以安全地假设您不能使用新 SDK 来使用签名版本 2。
--
[编辑]检查他们的文档:https://docs.aws.amazon.com/AmazonS3/latest/API/bucket-policy-s3-sigv4-conditions.html
"AWS" identifies Signature Version 2
"AWS4-HMAC-SHA256" identifies Signature Version 4
Run Code Online (Sandbox Code Playgroud)
因此,您应该能够检查X-Amz-Algorithm查询参数来确定。
| 归档时间: |
|
| 查看次数: |
4950 次 |
| 最近记录: |