最近更新时间:2025-09-29 18:53:08
以下代码用于重命名文件:
/**
* 重命名文件
* @since 1.4.0
* 注意:
* 1. 重命名文件实际是先复制文件,再删除源文件,非原子操作!
* 2. 需要权限:源桶:GetObject、DeleteObject,目标桶:PutObject
*/
public void renameFile() {
// 初始化 Ks3Client,参见“初始化”文档
Ks3Client ks3Client = initKs3Client();
try {
String bucketName = "my-bucket";
String srcObjectKey = "test-key";
String dstObjectKey = "new-test-key";
// 发送请求
CopyFileResult copyFileResult = ks3Client.renameFile(bucketName, srcObjectKey, dstObjectKey);
System.out.println("Rename file success, eTag: " + copyFileResult.getETag() + ", crc64Ecma: " + copyFileResult.getCrc64Ecma());
} catch (Ks3ServiceException e) {
System.out.println("Ks3ServiceException occurred, which means the request was made to KS3, but KS3 returned an error response for some reason.");
System.out.println("Error Message: " + e.getErrorMessage());
System.out.println("Error Code: " + e.getErrorCode());
System.out.println("Request ID: " + e.getRequestId());
} catch (Ks3ClientException e) {
System.out.println("Ks3ClientException occurred, which means the client encountered an internal error while trying to communicate with KS3.");
System.out.println("Error Message: " + e.getMessage());
} catch (Throwable t) {
System.out.println("Throwable occurred: " + t.getMessage());
} finally {
// 不再使用时,关闭 Ks3Client
ks3Client.shutdown();
}
}以下代码用于同一个桶内移动文件:
/**
* 在同一个桶内移动文件
* @since 1.4.0
* 注意:
* 1. 移动文件实际是先复制文件,再删除源文件,非原子操作!
* 2. 需要权限:源桶:GetObject、DeleteObject,目标桶:PutObject
*/
public void moveFile() {
// 初始化 Ks3Client,参见“初始化”文档
Ks3Client ks3Client = initKs3Client();
try {
String bucketName = "my-bucket";
String srcObjectKey = "test-key";
String dstObjectKey = "new-test-key";
// 发送请求
CopyFileResult copyFileResult = ks3Client.moveFile(bucketName, srcObjectKey, dstObjectKey);
System.out.println("Move file success, eTag: " + copyFileResult.getETag() + ", crc64Ecma: " + copyFileResult.getCrc64Ecma());
} catch (Ks3ServiceException e) {
System.out.println("Ks3ServiceException occurred, which means the request was made to KS3, but KS3 returned an error response for some reason.");
System.out.println("Error Message: " + e.getErrorMessage());
System.out.println("Error Code: " + e.getErrorCode());
System.out.println("Request ID: " + e.getRequestId());
} catch (Ks3ClientException e) {
System.out.println("Ks3ClientException occurred, which means the client encountered an internal error while trying to communicate with KS3.");
System.out.println("Error Message: " + e.getMessage());
} catch (Throwable t) {
System.out.println("Throwable occurred: " + t.getMessage());
} finally {
// 不再使用时,关闭 Ks3Client
ks3Client.shutdown();
}
}以下代码用于同 region 的不同桶之间移动文件:
/**
* 将文件移动到同 region 的另外一个桶
* @since 1.4.0
* 注意:
* 1. 该方法不支持不同 region 的桶之间移动文件
* 2. 如果需要将文件从一个 region 移动到另一个 region,可以使用 TransferManager#copyFileAcrossRegion 复制文件,复制成功再删除源文件
* 3. 移动文件实际是先复制文件,再删除源文件,非原子操作!
* 4. 需要权限:源桶:GetObject、DeleteObject,目标桶:PutObject
*/
public void moveFileToOtherBucket() {
// 初始化 Ks3Client,参见“初始化”文档
Ks3Client ks3Client = initKs3Client();
try {
String srcBucketName = "my-bucket";
String srcObjectKey = "test-key";
String dstBucketName = "my-bucket-2";
String dstObjectKey = "new-test-key";
// 发送请求
CopyFileResult copyFileResult = ks3Client.moveFile(srcBucketName, srcObjectKey, dstBucketName, dstObjectKey);
System.out.println("Move file success, eTag: " + copyFileResult.getETag() + ", crc64Ecma: " + copyFileResult.getCrc64Ecma());
} catch (Ks3ServiceException e) {
System.out.println("Ks3ServiceException occurred, which means the request was made to KS3, but KS3 returned an error response for some reason.");
System.out.println("Error Message: " + e.getErrorMessage());
System.out.println("Error Code: " + e.getErrorCode());
System.out.println("Request ID: " + e.getRequestId());
} catch (Ks3ClientException e) {
System.out.println("Ks3ClientException occurred, which means the client encountered an internal error while trying to communicate with KS3.");
System.out.println("Error Message: " + e.getMessage());
} catch (Throwable t) {
System.out.println("Throwable occurred: " + t.getMessage());
} finally {
// 不再使用时,关闭 Ks3Client
ks3Client.shutdown();
}
}以下代码用于跨 region 移动文件:
/**
* 将文件移动到另一个 region 的另外一个桶
* @since 1.4.0
* 注意:
* 1. 该方法移动文件实际是先下载源文件并传输到目标桶,再删除源文件,非原子操作!
* 4. 需要权限:源桶:GetObject、DeleteObject,目标通:PutObject
*/
public void moveFileToOtherRegion() {
// 初始化 Ks3Client,参见“初始化”文档
Ks3Client ks3Client = initKs3Client();
try {
String srcBucketName = "my-bucket";
String srcObjectKey = "test-key";
String dstBucketName = "my-bucket-2";
String dstObjectKey = "new-test-key";
// 初始化目标 region 的 Ks3Client
Ks3Client dstKs3Client = initKs3Client();
// 设置目标 region 及 endpoint,例如:上海 region
dstKs3Client.getClientConfig().setRegion("SHANGHAI");
dstKs3Client.getClientConfig().setEndpoint("ks3-cn-shanghai.ksyuncs.com");
// 使用 TransferManager 复制文件
TransferManager transferManager = new TransferManager(ks3Client);
UploadFileResult uploadFileResult = transferManager.copyFileAcrossRegion(srcBucketName, srcObjectKey, dstBucketName, dstObjectKey, dstKs3Client);
System.out.println("Upload file to dstBucket success, eTag: " + uploadFileResult.getETag() + ", crc64Ecma: " + uploadFileResult.getCrc64Ecma());
// 删除源文件
ks3Client.deleteObject(srcBucketName, srcObjectKey);
System.out.println("Delete srcObject success");
} catch (Ks3ServiceException e) {
System.out.println("Ks3ServiceException occurred, which means the request was made to KS3, but KS3 returned an error response for some reason.");
System.out.println("Error Message: " + e.getErrorMessage());
System.out.println("Error Code: " + e.getErrorCode());
System.out.println("Request ID: " + e.getRequestId());
} catch (Ks3ClientException e) {
System.out.println("Ks3ClientException occurred, which means the client encountered an internal error while trying to communicate with KS3.");
System.out.println("Error Message: " + e.getMessage());
} catch (Throwable t) {
System.out.println("Throwable occurred: " + t.getMessage());
} finally {
// 不再使用时,关闭 Ks3Client
ks3Client.shutdown();
}
}
纯净模式
