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

Object Storage Service:範囲のダウンロード (iOS SDK)

最終更新日:Nov 30, 2025

ファイルの一部のみが必要な場合は、範囲のダウンロードを使用して、データの特定の部分を取得できます。

注意事項

このトピックのサンプルコードを実行する前に、カスタムドメイン名または Security Token Service (STS) を使用して OSSClient インスタンスを作成します。詳細については、「初期化 (iOS SDK)」をご参照ください。

説明

バケットのリージョンは、初期化時に指定されたエンドポイントのリージョンによって決まります。

権限

デフォルトでは、Alibaba Cloud アカウントはすべての権限を持っています。Alibaba Cloud アカウント下の RAM ユーザーまたは RAM ロールは、デフォルトでは何の権限も持っていません。Alibaba Cloud アカウントまたはアカウント管理者は、RAM ポリシーまたはバケットポリシーを通じて操作権限を付与する必要があります。

API

アクション

定義

GetObject

oss:GetObject

オブジェクトをダウンロードします。

oss:GetObjectVersion

オブジェクトをダウンロードする際に、versionId を通じてオブジェクトのバージョンを指定する場合、この権限が必要です。

kms:Decrypt

オブジェクトをダウンロードする際に、オブジェクトのメタデータに X-Oss-Server-Side-Encryption: KMS が含まれている場合、この権限が必要です。

範囲のダウンロードは、ラージオブジェクトのダウンロードに適しています。リクエストヘッダーで 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(@"download object success!");
        OSSGetObjectResult * getResult = task.result;
        NSLog(@"download result: %@", getResult.downloadedData);
    } else {
        NSLog(@"download object failed, error: %@" ,task.error);
    }
    return nil;
}];
// [getTask waitUntilFinished];
// [request cancel];

関連ドキュメント

  • 範囲のダウンロードの API 操作の詳細については、「GetObject」をご参照ください。

  • OSSClient インスタンスの初期化方法の詳細については、「初期化 (iOS SDK)」をご参照ください。