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

Object Storage Service:条件付きダウンロード (iOS SDK)

最終更新日:Nov 30, 2025

1 つ以上の条件を指定してオブジェクトをダウンロードできます。指定された条件が満たされた場合、オブジェクトはダウンロードされます。それ以外の場合、オブジェクトはダウンロードされず、エラーが返されます。

注意事項

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

    説明

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

  • ファイルをダウンロードするには、ossGetObject 権限が必要です。詳細については、「RAM ユーザーへのカスタムアクセスポリシーの付与」をご参照ください。

次のサンプルコードは、examplebucket バケットの exampledir ディレクトリから exampleobject.txt オブジェクトをダウンロードする方法の例を示しています。ダウンロードには複数の条件が指定されています。

OSSGetObjectRequest *get = [OSSGetObjectRequest new];
// バケット名を指定します。バケットの命名規則の詳細については、「バケットの命名規則」をご参照ください。
get.bucketName = @"examplebucket";
// オブジェクトの完全なパスを指定します。オブジェクトの完全なパスにバケット名を含めないでください。オブジェクトの命名規則の詳細については、「オブジェクトの命名規則」をご参照ください。
get.objectKey = @"exampledir/exampleobject.txt";
NSMutableDictionary *headerFields = [NSMutableDictionary dictionary];
// If-Modified-Since を Fri, 13 Oct 2021 14:47:53 GMT に設定します。
[headerFields setValue:@"Fri, 13 Oct 2021 14:47:53 GMT" forKey:@"If-Modified-Since"];
// オブジェクトの最終更新日時が指定された日時以前の場合にのみ、オブジェクトがダウンロードされるように指定します。
[headerFields setValue:[[NSDate new] oss_asStringValue] forKey:@"If-Unmodified-Since"];
// オブジェクトのエンティティタグ (ETag) が指定された ETag と異なる場合にのみ、オブジェクトがダウンロードされるように指定します。
[headerFields setValue:@"5B3C1A2E0563E1B002CC607C****" forKey:@"If-None-Match"];
// オブジェクトの ETag が指定された ETag と同じ場合にのみ、オブジェクトがダウンロードされるように指定します。
[headerFields setValue:@"fba9dede5f27731c9771645a3986****" forKey:@"If-Match"];
get.headerFields = headerFields;

[[[client getObject:get] continueWithBlock:^id _Nullable(OSSTask * _Nonnull task) {
    if (!task.error) {
        NSLog(@"get object success!");
    } else {
        NSLog(@"get object error: %@", task.error);
    }
    return nil;
}] waitUntilFinished];

リファレンス

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

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