下載檔案(Object)時,可以指定一個或多個限定條件。滿足限定條件則下載,條件不滿足則返回錯誤且不會觸發下載行為。
注意事項
使用本文樣本前您需要先通過自訂網域名、STS等方式建立OSSClient,具體請參見初始化。
說明所建立儲存空間的所屬地區取決於初始化配置的endpoint地區資訊。
要下載檔案,您必須有
ossGetObject
許可權。具體操作,請參見為RAM使用者授權自訂的權限原則。
範例程式碼
以下代碼用於下載儲存空間examplebucket目錄exampledir下的檔案exampleobject.txt,且下載過程中指定了多個限定條件:
OSSGetObjectRequest *get = [OSSGetObjectRequest new];
// 填寫Bucket名稱。關於Bucket名稱命名規範的更多資訊,請參見Bucket。
get.bucketName = @"examplebucket";
// 填寫不包含Bucket名稱在內的Object完整路徑。關於Object名稱命名規範的更多資訊,請參見Object。
get.objectKey = @"exampledir/exampleobject.txt";
NSMutableDictionary *headerFields = [NSMutableDictionary dictionary];
// 指定下載實際修改時間晚於Fri, 13 Oct 2021 14:47:53 GMT的Object。
[headerFields setValue:@"Fri, 13 Oct 2021 14:47:53 GMT" forKey:@"If-Modified-Since"];
// 指定下載實際修改時間早於或者等於目前時間的Object。
[headerFields setValue:[[NSDate new] oss_asStringValue] forKey:@"If-Unmodified-Since"];
// 指定下載與傳入的ETag值不匹配的Object。
[headerFields setValue:@"5B3C1A2E0563E1B002CC607C****" forKey:@"If-None-Match"];
// 指定下載與傳入的ETag值匹配的Object。
[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,請參見如何初始化OSSClient執行個體。