我有一个大文件部署到 R2,并且想要其中的某些部分。
根据MDN,
Range
标头可以以Range: bytes=0-10, 20,50
的形式指定多个范围。无论如何,当我尝试向端点发出 HTTP 请求时,它返回一个错误。
我尝试过单个范围,它返回正确的响应
curl -H 'Range: bytes=0-10' 'https://xxx.r2.cloudflarestorage.com/yyyy&x-id=GetObject'
以下请求会返回错误:
curl -H 'Range: bytes=0-10, 20-50' 'https://xxx.r2.cloudflarestorage.com/yyyy&x-id=GetObject'
<?xml version="1.0" encoding="UTF-8"?><Error><Code>InvalidArgument</Code><Message>Invalid Argument: range must be in format 'bytes=start-end', 'bytes=start-' or 'bytes=-suffix'.'</Message></Error>
该功能在 Cloudflare R2 中未完全实现还是我在某处理解错误?
Cloudflare R2 实现了 AWS S3 API,并且根据 AWS S3 对象文档:
Amazon S3 doesn't support retrieving multiple ranges of data per GET request.