通过Get Object S3请求中的查询字符串指定字节范围

时间:2014-11-17 02:31:00

标签: http

我熟悉Range HTTP标头;但是,我用来查询S3的接口(一个img元素的.src属性)并不允许我指定HTTP头。

我有办法通过查询字符串中的参数指定我想要的范围吗?

它似乎没有,但在我用ajax请求推出自己的解决方案之前,我只是抱着一丝希望。

1 个答案:

答案 0 :(得分:11)

Amazon S3支持Range GET请求,某些HTTP服务器也是如此,例如Apache和IIS。

How CloudFront Processes Partial Requests for an Object (Range GETs)

我试图通过cURL获取我的S3对象:

curl -r 0-1024 https://s3.amazonaws.com/mybucket/myobject -o part1
curl -r 1025-  https://s3.amazonaws.com/mybucket/myobject -o part2
cat part1 part2 > myobject

和AWS SDK for JavaScript:

var s3 = new AWS.S3();
var file = require('fs').createWriteStream('part1');
var params = {
    Bucket: 'mybucket',
    Key: 'myobject',
    Range: 'bytes=0-1024'
};
s3.getObject(params).createReadStream().pipe(file);

这两种方法对我来说很好。

AWS SDK for JavaScript API Reference (getObject)