复制文件

最近更新时间:2021-12-16 11:41:52

public void copyObject(){
       // yourEndpoint填写Bucket所在地域对应的Endpoint。以中国(北京)为例,Endpoint填写为ks3-cn-beijing.ksyuncs.com。如果使用自定义域名,设置endpoint为自定义域名,同时设置domainMode为true
       String endpoint = "yourEndpoint";
       // 金山云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用子账号账号进行 API 访问或日常运维,请登录 https://uc.console.ksyun.com/pro/iam/#/user/list 创建子账号。
       String accessKeyId = "yourAccessKeyId";
       String accessKeySecret = "yourAccessKeySecret";
       // 创建Ks3ClientConfig 实例。
       Ks3ClientConfig config = new Ks3ClientConfig();
       // 设置域名
       config.setEndpoint(endpoint);
       // 创建Ks3Client实例
       Ks3 client = new Ks3Client(accessKeyId, accessKeySecret, config);
       // 创建copy请求,将sourceBucket这个存储空间下的sourceKey这个object复制到destinationBucket这个存储空间下,并命名为destinationObject
       CopyObjectRequest request = new CopyObjectRequest("destinationBucket","destinationObject","sourceBucket","sourceKey");
       // 可以指定目的文件的加密方式
       
  		 // copy 后的文件以服务端加密方式存储
       // ObjectMetadata meta = new ObjectMetadata();
			 // meta.setSseAlgorithm("AES256");
			 // request.setNewObjectMetadata(meta);
       
  
  		 // copy的文件以用户提供key的方式进行服务端解密,并设置新的文件的服务端加密
       // 生成一个密钥,这个密钥需要自己保存好,加密解密都需要
			 // KeyGenerator symKeyGenerator = KeyGenerator.getInstance("AES");
       // symKeyGenerator.init(256); 
       // SecretKey destKey= symKeyGenerator.generateKey();
       // SecretKey sourceKey= ??//当初加密时用的key
       // 指定被拷贝的数据是用sourceKey进行加密的,拷贝时将用该key先对数据解密
			 // request.setSourceSSECustomerKey(new SSECustomerKey(sourceKey));
			 // 指定拷贝生成的新数据的加密方式
			 // request.setDestinationSSECustomerKey(new SSECustomerKey(destKey));
       // 发起copy请求
  		 client.copyObject(request);
}

注意:

  • 文件复制的时候,需要用户对源文件有读取权限,对目标bucket有写权限。
  • 如果目标文件已经存在,复制操作将会抛出400,对应的ErrorCode是 invalidKey。

文档内容是否对您有帮助?

根本没帮助
文档较差
文档一般
文档不错
文档很好

在文档使用中是否遇到以下问题

内容不全,不深入
内容更新不及时
描述不清晰,比较混乱
系统或功能太复杂,缺乏足够的引导
内容冗长

更多建议

0/200

评价建议不能为空

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

问题反馈