プログレスバーを使用すると、アップロードまたはダウンロード中のオブジェクトの進行状況を表示できます。 この例では、`PutObject` 操作を使用して、アップロード中のオブジェクトのプログレスバーを表示する方法について説明します。
注意事項
このトピックのサンプルコードを実行する前に、カスタムドメイン名や Security Token Service (STS) などのメソッドを使用して `OSSClient` インスタンスを作成する必要があります。 詳細については、「初期化」をご参照ください。
説明バケットのリージョンは、初期化時に指定されたエンドポイントのリージョンによって決まります。
ファイルをアップロードするには、
oss:PutObject権限が必要です。 詳細については、「RAM ユーザーへのカスタムアクセスポリシーの付与」をご参照ください。
例
次のサンプルコードは、ローカルファイルをバケットにアップロードするときにプログレスバーを表示する方法の例を示しています。
OSSPutObjectRequest * put = [OSSPutObjectRequest new];
// バケット名を指定します。 例:examplebucket。
put.bucketName = @"examplebucket";
// オブジェクトの完全なパスを指定します。 完全なパスにバケット名を含めないでください。 例: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];