iOS进度条

进度条用于指示上传或下载文件的进度。本文以GetObject接口为例介绍如何打印下载文件(Object)的进度条。

注意事项

  • 使用本文示例前您需要先通过自定义域名、STS等方式新建OSSClient,具体请参见初始化

    说明

    所创建存储空间的所属地域取决于初始化配置的endpoint地域信息。

  • 要下载文件,您必须有ossGetObject权限。具体操作,请参见RAM用户授权自定义的权限策略

示例代码

以下代码用于打印从examplebucket下载exampleobject.txt文件的进度条。

OSSGetObjectRequest * request = [OSSGetObjectRequest new];
// 填写Bucket名称,例如examplebucket。
request.bucketName = @"examplebucket";
// 填写Object完整路径,完整路径中不能包含Bucket名称,例如exampledir/exampleobject.txt。
request.objectKey = @"exampledir/exampleobject.txt";
// 设置进度回调函数打印进度条。
request.downloadProgress = ^(int64_t bytesWritten, int64_t totalBytesWritten, int64_t totalBytesExpectedToWrite) {
    // 当前下载长度、当前已下载总长度、待下载的总长度。
    NSLog(@"%lld, %lld, %lld", bytesWritten, totalBytesWritten, totalBytesExpectedToWrite);
};

OSSTask * getTask = [client getObject:request];
[getTask continueWithBlock:^id(OSSTask *task) {
    if (!task.error) {
        NSLog(@"download object success!");
    } else {
        NSLog(@"download object failed, error: %@" ,task.error);
    }
    return nil;
}];
// 实现同步阻塞等待任务完成。
// [putTask waitUntilFinished]; 

相关文档

关于初始化OSSClient,请参见如何初始化OSSClient实例