使用 JavaScript SDK 的带有预签名 URL 的 AWS Transfer Acceleration

AWS Transfer Acceleration with pre-signed URLs using JavaScript SDK

简单地说,是否可以将传输加速 (TA) 与使用 AWS-SDK 为 JavaScript 生成的预签名 URL 一起使用?

为特定 S3 存储桶启用 TA 会得到 URL,格式为:{bucket}.s3-accelerate.amazonaws.com。但是,在为请求指定参数时,唯一有效的选项似乎是 {Bucket: 'bucket', Key: 'key', Body: 'body', Expires: 60} 并且似乎不允许我说我想使用 TA。结果URL是通常的格式{bucket}.s3-{region}.amazonaws.com,这对TA来说是错误的。

documentation 似乎没有提供很多关于预签名 URL 的信息。

是的,但这仍然没有记录,并且在他们的文档或其他任何地方都找不到(直到现在:))。我们通过搜索 SDK 的源代码让它工作。您需要像这样加载 S3:

var s3 = new AWS.S3({useAccelerateEndpoint: true});

然后SDK将使用加速端点。

碰巧,有一种记录的方法可以在 JavaScript 的 AWS SDK 上启用 S3 传输加速功能。可以通过指定@Luc Hendriks 提到的相同 属性 来完成,但在 AWS.Config class 中如下所示:

AWS.config.update({
    useAccelerateEndpoint: true
});

var s3 = new AWS.S3();

文档参考:http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Config.html