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

Object Storage Service:OSS SDK for iOSを使用したダウンロードのストリーミング

最終更新日:Aug 22, 2024

大きなオブジェクトをダウンロードする必要がある場合、またはダウンロードの完了に長い時間がかかる場合は、ストリーミングダウンロードを実行して、オブジェクトを増分単位でダウンロードできます。

使用上の注意

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

    説明

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

  • オブジェクトをダウンロードするには、ossGetObject権限が必要です。 詳細については、「RAMユーザーへのカスタムポリシーのアタッチ」をご参照ください。

  • OSS SDK for iOSは、ストリーミングダウンロードAPI操作を提供していません。 代わりに、NSURLSessionライブラリのdidRecieveData関数に似たマルチパートコールバック機能を提供します。 マルチパートコールバックが設定されている場合、ダウンロード結果に実際のデータは含まれません。

次のサンプルコードは、ストリーミングダウンロードを実行してオブジェクトをダウンロードする方法の例を示しています。

OSSGetObjectRequest * request = [OSSGetObjectRequest new];
// Specify the name of the bucket. Example: examplebucket. 
request.bucketName = @"examplebucket";
// Specify the full path of the object. Do not include the bucket name in the full path. Example: exampledir/exampleobject.txt. 
request.objectKey = @"exampledir/exampleobject.txt";
// Configure the multipart callback function. 
request.onRecieveData = ^(NSData * data) {
    NSLog(@"Recieve data, length: %ld", [data length]);
};
OSSTask * getTask = [client getObject:request];
[getTask continueWithBlock:^id(OSSTask *task) {
    if (!task.error) {
        NSLog(@"download object success!");
    } else {
        NSLog(@"download object failed, error: %@" ,task.error);
    }
    return nil;
}];
// [getTask waitUntilFinished];
// [request cancel];

関連ドキュメント

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

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