什么是 AWS S3 GET 字节范围最大偏移量?

What's AWS S3 GET byte range maximum offset?

我正在尝试查找此信息,但目前运气不佳。

我在 S3 上有一个相当大的文件(在 64-128Gb 范围内),我想从中读取随机字节范围 - 它可行吗?我猜字节范围偏移对于接近文件末尾某处的块来说会非常大。

如果这很重要,典型的读取块是 1-12 Kb。

这不是问题。

Amazon docs 声明 Range header 按照规范支持(但每个请求只有一个范围):

Range

Downloads the specified range bytes of an object. For more information about the HTTP Range header, see https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35

RFC2616 没有定义任何上限。

The first-byte-pos value in a byte-range-spec gives the byte-offset of the first byte in a range. The last-byte-pos value gives the byte-offset of the last byte in the range; that is, the byte positions specified are inclusive. Byte offsets start at zero.

这是有道理的,因为范围会自动受到文件大小的限制,比如说,总体上只支持 32 位数字的系统通常也只支持最大 2 GiB(减一)的文件.

The maximum size of objects in S3 is 5 TiB.