本文介绍如何将一个存储空间(源存储空间)中的文件复制到同一地域下相同或不同存储空间(目标存储空间)中。

拷贝文件时注意事项如下:

  • 用户必须有源Object的读权限及目标Bucket的读写权限。
  • 不支持跨地域拷贝。例如不能将华东1(杭州)地域存储空间中的文件拷贝到华北1(青岛)地域。

以下代码用于拷贝文件。

OSSCopyObjectRequest * copy = [OSSCopyObjectRequest new];
// 填写源Bucket名称。
copy.bucketName = @<bucketName>;
// objectKey等同于objectName,表示从源Bucket拷贝文件时需要指定包含文件后缀在内的完整路径,完整路径中不能包含Bucket名称,例如abc/efg/123.jpg
copy.objectKey = @"<objectKey>";
copy.sourceCopyFrom = [NSString stringWithFormat:@"/%@/%@", @"<bucketName>, @"<objectKey_copyFrom>"];

OSSTask * task = [client copyObject:copy];

[task continueWithBlock:^id(OSSTask *task) {
    if (!task.error) {
        // ...
    }
    return nil;s
}];