通过使用Azure blob存储的Java SDK,有没有办法从Azure blob存储中下载具有恢复功能的大文件?
绝对没错。根据Azure REST API qazxsw poi for Storage Service的参考,有一个参数qazxsw poi的请求标题用于下载Blob的一部分。
X-MS-范围
可选的。仅返回指定范围内blob的字节数。如果同时指定了Range和x-ms-range,则服务使用x-ms-range的值。如果两者都未指定,则返回整个blob内容。有关更多信息,请参阅
Get Blob
。
因此,您可以通过x-ms-range
传递Specifying the Range Header for Blob Service Operations值继续下载过程,以便在工作线程中继续下载blob的完整尾部。
或者考虑到性能,您可以首先获取blob的字节大小,然后使用x-ms-range
在多个工作线程中单独下载blob的切片,并将blob切片连接到已完成的切片。
在Azure Storage for Java v8(Legacy)中,直接使用bytes=<the byte size of your downloaded>-
的x-ms-range
方法和参数downloadRange
和CloudBlob
(它等于offset
)。
在Azure Storage for Java v10中,将length
对象传递给x-ms-range: <offset>-<offset+length>
的BlobRange
方法。