進度條用於指示上傳或下載檔案的進度。本文以PutObject介面為例介紹如何列印上傳檔案(Object)的進度條。
注意事項
使用本文樣本前您需要先通過自訂網域名、STS等方式建立OSSClient,具體請參見初始化(iOS SDK)。
說明所建立儲存空間的所屬地區取決於初始化配置的endpoint地區資訊。
要上傳檔案,您必須有
oss:PutObject許可權。具體操作,請參見為RAM使用者授予自訂的權限原則。
範例程式碼
將本地檔案上傳到儲存空間的某個檔案時,您可以使用以下代碼擷取上傳檔案的進度條。
OSSPutObjectRequest * put = [OSSPutObjectRequest new];
// 填寫Bucket名稱,例如examplebucket。
put.bucketName = @"examplebucket";
// 填寫Object完整路徑,完整路徑中不能包含Bucket名稱,例如exampledir/exampleobject.txt。
put.objectKey = @"exampledir/exampleobject.txt";
// 填寫本地檔案的完整路徑。
// 如果未指定本地路徑,則預設從樣本程式所屬專案對應本地路徑中上傳檔案。
put.uploadingFileURL = [NSURL fileURLWithPath:@"filePath"];
// 設定進度回呼函數列印進度條。
put.uploadProgress = ^(int64_t bytesSent, int64_t totalByteSent, int64_t totalBytesExpectedToSend) {
// 當前上傳長度、當前已上傳總長度、待上傳的總長度。
NSLog(@"%lld, %lld, %lld", bytesSent, totalByteSent, totalBytesExpectedToSend);
};
OSSTask * putTask = [client putObject:put];
[putTask continueWithBlock:^id(OSSTask *task) {
if (!task.error) {
NSLog(@"upload object success!");
} else {
NSLog(@"upload object failed, error: %@" , task.error);
}
return nil;
}];
// 實現同步阻塞等待任務完成。
// [putTask waitUntilFinished]; 相關文檔
關於上傳檔案時進度條的完整範例程式碼,請參見GitHub樣本。
關於初始化OSSClient,請參見如何初始化OSSClient執行個體。