我熟悉Range HTTP标头;但是,我用来查询S3的接口(一个img元素的.src属性)并不允许我指定HTTP头。
我有办法通过查询字符串中的参数指定我想要的范围吗?
它似乎没有,但在我用ajax请求推出自己的解决方案之前,我只是抱着一丝希望。
答案 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);
这两种方法对我来说很好。