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

将本地文件examplefile.txt上传到目标存储空间examplebucket中的exampleobject.txt文件时,您可以使用以下代码获取上传文件的进度条。

OSSPutObjectRequest * put = [OSSPutObjectRequest new];
// 填写Bucket名称。
put.bucketName = @"examplebucket";
// 填写Object完整路径。Object完整路径中不能包含Bucket名称。
put.objectKey = @"exampleobject.txt";
// 填写本地文件的完整路径。
// 如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件。
put.uploadingFileURL = [NSURL fileURLWithPath:@"D:\\localpath\\examplefile.txt"];
// 设置进度回调函数打印进度条。
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;
}];