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

Object Storage Service:シンプルなダウンロード

最終更新日:Apr 12, 2025

このトピックでは、シンプルなダウンロードを実行する方法について説明します。

使用上の注意

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

説明

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

権限

デフォルトでは、Alibaba Cloud アカウントは、アカウント内のリソースに対するすべての権限を持っています。一方、Alibaba Cloud アカウントに関連付けられた RAM ユーザーおよび RAM ロールは、最初は権限を持ちません。RAM ユーザーまたはロールを使用してリソースを管理するには、RAM ポリシーまたはバケットポリシーを使用して必要な権限を付与する必要があります。

API

アクション

説明

GetObject

oss:GetObject

オブジェクトをダウンロードする権限を付与します。

oss:GetObjectVersion

オブジェクトバージョンを照会する権限を付与します。 この権限は、特定のバージョンのオブジェクトをダウンロードする場合に必要です。

kms:Decrypt

Key Management Service (KMS) 復号を使用する権限を付与します。 この権限は、 x-oss-server-side-encryption ヘッダーを指定して暗号化したオブジェクトを部分的にダウンロードする場合に必要です。

オブジェクトは、ローカルファイルまたは NSData としてダウンロードできます。

OSSGetObjectRequest * request = [OSSGetObjectRequest new];

// バケット名を指定します。例:examplebucket。
request.bucketName = @"examplebucket";
// オブジェクトの完全なパスを指定します。例:exampledir/exampleobject.txt。完全なパスにバケット名を含めないでください。
request.objectKey = @"exampledir/exampleobject.txt";

// オプションフィールドを設定します。
request.downloadProgress = ^(int64_t bytesWritten, int64_t totalBytesWritten, int64_t totalBytesExpectedToWrite) {
    // ダウンロード中のバイト数、ダウンロード済みのバイト数、ダウンロードする合計バイト数を指定します。
    NSLog(@"%lld, %lld, %lld", bytesWritten, totalBytesWritten, totalBytesExpectedToWrite);
};
// request.range = [[OSSRange alloc] initWithStart:0 withEnd:99]; // bytes=0-99。ダウンロード範囲をバイト 0 からバイト 99 までに指定します。
// request.downloadToFileURL = [NSURL fileURLWithPath:@"<filepath>"]; // オブジェクトをファイルに直接ダウンロードする必要がある場合は、ファイルのパスを指定します。

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];

関連情報

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

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