全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

重命名和移动文件(Java)

最近更新时间: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 的不同桶之间移动文件:

/**
 * 将文件移动到同 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 移动文件:

/**
 * 将文件移动到另一个 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();
    }
}

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈