すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:部分ダウンロード

最終更新日:Dec 19, 2023

範囲ダウンロードを使用して、オブジェクトのコンテンツの一部をダウンロードできます。

範囲のダウンロードは、大きなオブジェクトのダウンロードに適しています。 リクエストヘッダーに Range パラメーターを指定すると、オブジェクト全体の長さと、このレスポンスで返される範囲がレスポンスに含まれます。

次のコードでは、範囲のダウンロードを実行する方法の例を示します。

OSSGetObjectRequest * request = [OSSGetObjectRequest new];
// バケットの名前を指定します。 例: examplebucket. 
request.bucketName = @ "examplebucket;
// オブジェクトのフルパスを指定します。 フルパスにバケット名を含めることはできません。 例: exampledir/exampleobject.txt。 
request.objectKey = @ "exampledir/exampleobject.txt";
request.range = [[OSSRange alloc] initWithStart:1 withEnd:99]; // bytes=1-99
// request.range = [[OSSRange alloc] initWithStart:-1 withEnd:99]; // bytes=-99
// request.range = [[OSSRange alloc] initWithStart:10 withEnd:-1]; // bytes=10-
request.downloadProgress = ^(int64_t bytesWritten, int64_t totalBytesWritten, int64_t totalBytesExpectedToWrite) {
    NSLog(@ "% lld, % lld, % lld", bytesWritten, totalBytesWritten, totalBytesExpectedToWrite);
};
OSSTask * getTask = [client getObject:request];
[getTask continueWithBlock:^ id(OSSTask * task) {
    if (!task.error) {
        NSLog(@ "オブジェクトのダウンロード成功!");
        OSSGetObjectResult * getResult = task.result;
        NSLog(@ "download result: % @", getResult.dowloadedData);
    } else {
        NSLog(@ "オブジェクトのダウンロードに失敗、エラー: % @" 、task.error);
    }
    nilを返します。}];
// [getTask waitUntilFinished];
// [リクエストキャンセル]; 

参考資料

範囲ダウンロードを実行するために呼び出すことができるAPI操作の詳細については、「GetObject」をご参照ください。