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

时间:2016-05-25 12:53:14

标签: javascript node.js amazon-web-services amazon-s3 aws-sdk

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

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

documentation似乎没有提供有关预签名网址的更多信息。

2 个答案:

答案 0 :(得分:15)

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

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

然后SDK将使用加速端点。

答案 1 :(得分:1)

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

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

var s3 = new AWS.S3();

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