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