进度条用于指示上传或下载文件的进度。本文以PutObject接口为例介绍如何打印上传文件(Object)的进度条。
注意事项
使用本文示例前您需要先通过自定义域名、STS等方式新建OSSClient,具体请参见初始化。
说明所创建存储空间的所属地域取决于初始化配置的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实例。
文档内容是否对您有帮助?