全部產品
Search
文件中心

Object Storage Service:iOS上傳回調

更新時間:Aug 20, 2024

本文介紹如何使用上傳回調。

注意事項

  • 使用本文樣本前您需要先通過自訂網域名、STS等方式建立OSSClient,具體請參見初始化

    說明

    所建立儲存空間的所屬地區取決於初始化配置的endpoint地區資訊。

  • 要上傳檔案,您必須有oss:PutObject許可權。具體操作,請參見為RAM使用者授權自訂的權限原則

範例程式碼

以下代碼用於上傳回調:

OSSPutObjectRequest * request = [OSSPutObjectRequest new];
// 填寫Bucket名稱,例如examplebucket。
request.bucketName = @"examplebucket";
// 填寫不包含Bucket名稱在內的Object完整路徑,例如exampledir/exampleobject.txt。
request.objectKey = @"exampledir/exampleobject.txt";
request.uploadingFileURL = [NSURL fileURLWithPath:@"<filepath>"];
// 設定回調參數
request.callbackParam = @{
                          @"callbackUrl": @"<your server callback address>",
                          @"callbackBody": @"<your callback body>"
                          };
// 設定自訂變數。
request.callbackVar = @{
                        @"<var1>": @"<value1>",
                        @"<var2>": @"<value2>"
                        };
request.uploadProgress = ^(int64_t bytesSent, int64_t totalByteSent, int64_t totalBytesExpectedToSend) {
    NSLog(@"%lld, %lld, %lld", bytesSent, totalByteSent, totalBytesExpectedToSend);
};
OSSTask * task = [client putObject:request];
[task continueWithBlock:^id(OSSTask *task) {
    if (task.error) {
        OSSLogError(@"%@", task.error);
    } else {
        OSSPutObjectResult * result = task.result;
        NSLog(@"Result - requestId: %@, headerFields: %@, servercallback: %@",
              result.requestId,
              result.httpResponseHeaderFields,
              result.serverReturnJsonString);
    }
    return nil;
}];
// 實現同步阻塞等待任務完成。
// [task waitUntilFinished]; 

相關文檔

  • 關於上傳回調的完整範例程式碼,請參見GitHub樣本

  • 關於上傳回調的API介面說明,請參見Callback