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

Col*_*n S 5 http

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

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

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

小智 12

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

CloudFront如何处理对象的部分请求(范围GET)

我试图通过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
Run Code Online (Sandbox Code Playgroud)

和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);
Run Code Online (Sandbox Code Playgroud)

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

AWS SDK for JavaScript API参考(getObject)

  • RFC 7233:指定的字节位置包括在内;字节偏移量从零开始。 (2认同)