QCloudPutObjectCopyRequest Class Reference

Inherits from QCloudBizHTTPRequest
Declared in QCloudPutObjectCopyRequest.h
QCloudPutObjectCopyRequest.m

Overview

简单复制对象的方法.

功能描述

COS 中复制对象可以完成如下功能:

创建一个新的对象副本.

复制对象并更名,删除原始对象,实现重命名

修改对象的存储类型,在复制时选择相同的源和目标对象键,修改存储类型.

在不同的腾讯云 COS 地域复制对象.

修改对象的元数据,在复制时选择相同的源和目标对象键,并修改其中的元数据,复制对象时,默认将继承原对象的元数据, 但创建日期将会按新对象的时间计算.

当复制的对象小于等于 5 GB ,可以使用简单复制(https://cloud.tencent.com/document/product/436/14117)..)

当复制对象超过 5 GB 时,必须使用分块复制(https://cloud.tencent.com/document/product/436/14118 ) 来实现复制.

关于简单复制接口的具体描述,请查看https://cloud.tencent.com/document/product/436/10881.

示例

@code

QCloudPutObjectCopyRequest* request = [[QCloudPutObjectCopyRequest alloc] init];

 // 存储桶名称,格式为 BucketName-APPID
 request.bucket = @"examplebucket-1250000000";

 // 对象键,是对象在 COS 上的完整路径,如果带目录的话,格式为 "dir1/object1"
 request.object = @"exampleobject";

 // 是否拷贝元数据,枚举值:Copy,Replaced,默认值 Copy。
 // 假如标记为 Copy,忽略 Header 中的用户元数据信息直接复制
 // 假如标记为 Replaced,按 Header 信息修改元数据。当目标路径和原路径一致,即用户试图修改元数据时,必须为 Replaced
 request.metadataDirective = @"Copy";

 // 定义 Object 的 ACL 属性,有效值:private,public-read,default。
 // 默认值:default(继承 Bucket 权限)。
 // 注意:当前访问策略条目限制为1000条,如果您无需进行 Object ACL 控制,请填 default
 // 或者此项不进行设置,默认继承 Bucket 权限。
 request.accessControlList = @"default";

 // 源对象所在的路径
 request.objectCopySource =
 @"sourcebucket-1250000000.cos.ap-guangzhou.myqcloud.com/sourceObject";

 // 指定源文件的 versionID,只有开启或开启后暂停的存储桶,才会响应此参数
 request.versionID = @"objectVersion1";

 [request setFinishBlock:^(QCloudCopyObjectResult * _Nonnull result,
                           NSError * _Nonnull error) {
     // result 返回具体信息

 }];
 [[QCloudCOSXMLService defaultCOSXML]  PutObjectCopy:request];

  object

对象名

@property (strong, nonatomic) NSString *object

Declared In

QCloudPutObjectCopyRequest.h

  bucket

存储桶名

@property (strong, nonatomic) NSString *bucket

Declared In

QCloudPutObjectCopyRequest.h

  objectCopySource

源文件 URL 路径,可以通过 versionid 子资源指定历史版本

@property (strong, nonatomic) NSString *objectCopySource

Declared In

QCloudPutObjectCopyRequest.h

  metadataDirective

是否拷贝元数据,枚举值:Copy, Replaced,默认值 Copy。假如标记为 Copy,忽略 Header 中的用户元数据信息直接复制; 假如标记为 Replaced,按 Header 信息修改元数据。当目标路径和原路径一致,即用户试图修改元数据时,必须为 Replaced

@property (strong, nonatomic) NSString *metadataDirective

Declared In

QCloudPutObjectCopyRequest.h

  objectCopyIfModifiedSince

当 Object 在指定时间后被修改,则执行操作,否则返回 412。可与 x-cos-copy-source-If-None-Match 一起使用, 与其他条件联合使用返回冲突。

@property (strong, nonatomic) NSString *objectCopyIfModifiedSince

Declared In

QCloudPutObjectCopyRequest.h

  objectCopyIfUnmodifiedSince

当 Object 在指定时间后未被修改,则执行操作,否则返回 412。可与 x-cos-copy-source-If-Match 一起使用, 与其他条件联合使用返回冲突。

@property (strong, nonatomic) NSString *objectCopyIfUnmodifiedSince

Declared In

QCloudPutObjectCopyRequest.h

  objectCopyIfMatch

当 Object 的 Etag 和给定一致时,则执行操作,否则返回 412。可与x-cos-copy-source-If-Unmodified-Since 一起使用, 与其他条件联合使用返回冲突。

@property (strong, nonatomic) NSString *objectCopyIfMatch

Declared In

QCloudPutObjectCopyRequest.h

  objectCopyIfNoneMatch

当 Object 的 Etag 和给定不一致时,则执行操作,否则返回 412。可与 x-cos-copy-source-If-Modified-Since 一起使用, 与其他条件联合使用返回冲突。

@property (strong, nonatomic) NSString *objectCopyIfNoneMatch

Declared In

QCloudPutObjectCopyRequest.h

  storageClass

对象的存储级别,枚举值:STANDARD(QCloudCOSStorageStandard),STANDARD_IA(QCloudCOSStorageStandardIA)。 默认值:STANDARD(QCloudCOSStorageStandard)

@property (assign, nonatomic) QCloudCOSStorageClass storageClass

Declared In

QCloudPutObjectCopyRequest.h

  accessControlList

定义 Object 的 ACL 属性。有效值:private,public-read-write,public-read;默认值:private
@property (strong, nonatomic) NSString *accessControlList

Declared In

QCloudPutObjectCopyRequest.h

  grantRead

赋予被授权者读的权限。格式:x-cos-grant-read: id="[OwnerUin]"
@property (strong, nonatomic) NSString *grantRead

Declared In

QCloudPutObjectCopyRequest.h

  grantWrite

赋予被授权者写的权限。格式:x-cos-grant-write: id="[OwnerUin]";
@property (strong, nonatomic) NSString *grantWrite

Declared In

QCloudPutObjectCopyRequest.h

  grantFullControl

赋予被授权者读写权限。格式:x-cos-grant-full-control: id="[OwnerUin]"
@property (strong, nonatomic) NSString *grantFullControl

Declared In

QCloudPutObjectCopyRequest.h

  versionID

指定源文件的versionID,只有开启或开启后暂停的存储桶,才会响应此参数
@property (strong, nonatomic) NSString *versionID

Declared In

QCloudPutObjectCopyRequest.h