You need to enable JavaScript to run this app.
导航

管理桶重命名对象功能(Java SDK)

最近更新时间2024.04.26 18:00:05

首次发布时间2024.04.26 18:00:05

TOS 支持桶内单个对象的重命名功能,当您想要使用重命名对象功能时需要先开启桶的重命名功能。

开启桶的重命名规则

您可以通过 TOS Java SDK 的 PutBucketRename 接口开启桶的重命名功能。

注意事项

  • renameEnable 参数只能为 true
  • 不支持多版本桶开启重命名功能。
  • PutBucketRename 接口目前处于邀测状态,如您需要使用该接口,请联系客户经理。

示例代码

以下代码展示如何开启桶的重命名功能。

import com.volcengine.tos.TOSV2;
import com.volcengine.tos.TOSV2ClientBuilder;
import com.volcengine.tos.TosClientException;
import com.volcengine.tos.TosServerException;
import com.volcengine.tos.model.bucket.PutBucketRenameInput;
import com.volcengine.tos.model.bucket.PutBucketRenameOutput;

public class PutBucketRenameExample {
    public static void main(String[] args) {
        String endpoint = "your endpoint";
        String region = "your region";
        String accessKey = System.getenv("TOS_ACCESS_KEY");
        String secretKey = System.getenv("TOS_SECRET_KEY");

        String bucketName = "bucket-example";

        TOSV2 tos = new TOSV2ClientBuilder().build(region, endpoint, accessKey, secretKey);

        try{
            boolean renameEnable = true;
            PutBucketRenameInput input = new PutBucketRenameInput().setBucket(bucketName).setRenameEnable(renameEnable);
            PutBucketRenameOutput output = tos.putBucketRename(input);
            System.out.println("putBucketRename succeed");
        } catch (TosClientException e) {
            // 操作失败,捕获客户端异常,一般情况是请求参数错误,此时请求并未发送
            System.out.println("putBucketRename failed");
            System.out.println("Message: " + e.getMessage());
            if (e.getCause() != null) {
                e.getCause().printStackTrace();
            }
        } catch (TosServerException e) {
            // 操作失败,捕获服务端异常,可以获取到从服务端返回的详细错误信息
            System.out.println("putBucketRename failed");
            System.out.println("StatusCode: " + e.getStatusCode());
            System.out.println("Code: " + e.getCode());
            System.out.println("Message: " + e.getMessage());
            System.out.println("RequestID: " + e.getRequestID());
        } catch (Throwable t) {
            // 作为兜底捕获其他异常,一般不会执行到这里
            System.out.println("putBucketRename failed");
            System.out.println("unexpected exception, message: " + t.getMessage());
        }
    }
}

获取桶的重命名规则

您可以通过 TOS Java SDK 的 GetBucketRename 接口查询桶是否处于开启重命名的状态。

注意事项

获取桶是否处于开启重命名的状态,默认您必须为桶所有者。

示例代码

以下代码展示如何查询桶的重命名状态。

import com.volcengine.tos.TOSV2;
import com.volcengine.tos.TOSV2ClientBuilder;
import com.volcengine.tos.TosClientException;
import com.volcengine.tos.TosServerException;
import com.volcengine.tos.model.bucket.GetBucketRenameInput;
import com.volcengine.tos.model.bucket.GetBucketRenameOutput;

public class GetBucketRenameExample {
    public static void main(String[] args) {
        String endpoint = "your endpoint";
        String region = "your region";
        String accessKey = System.getenv("TOS_ACCESS_KEY");
        String secretKey = System.getenv("TOS_SECRET_KEY");

        String bucketName = "bucket-example";

        TOSV2 tos = new TOSV2ClientBuilder().build(region, endpoint, accessKey, secretKey);

        try{
            GetBucketRenameInput input = new GetBucketRenameInput().setBucket(bucketName);
            GetBucketRenameOutput output = tos.getBucketRename(input);
            System.out.println("getBucketRename succeed, bucket rename enable? " + output.isRenameEnable());
        } catch (TosClientException e) {
            // 操作失败,捕获客户端异常,一般情况是请求参数错误,此时请求并未发送
            System.out.println("getBucketRename failed");
            System.out.println("Message: " + e.getMessage());
            if (e.getCause() != null) {
                e.getCause().printStackTrace();
            }
        } catch (TosServerException e) {
            // 操作失败,捕获服务端异常,可以获取到从服务端返回的详细错误信息
            System.out.println("getBucketRename failed");
            System.out.println("StatusCode: " + e.getStatusCode());
            System.out.println("Code: " + e.getCode());
            System.out.println("Message: " + e.getMessage());
            System.out.println("RequestID: " + e.getRequestID());
        } catch (Throwable t) {
            // 作为兜底捕获其他异常,一般不会执行到这里
            System.out.println("getBucketPolicy failed");
            System.out.println("unexpected exception, message: " + t.getMessage());
        }
    }
}

关闭桶的重命名规则

您可以通过 TOS Java SDK 的 DeleteBucketRename 接口关闭桶的重命名状态,关闭后无法进行重命名操作。

注意事项

要关闭桶的重命名状态,默认您必须为桶所有者。

示例代码

以下代码展示如何关闭桶的重命名状态。

import com.volcengine.tos.TOSV2;
import com.volcengine.tos.TOSV2ClientBuilder;
import com.volcengine.tos.TosClientException;
import com.volcengine.tos.TosServerException;
import com.volcengine.tos.model.bucket.DeleteBucketRenameInput;
import com.volcengine.tos.model.bucket.DeleteBucketRenameOutput;

public class DeleteBucketRenameExample {
    public static void main(String[] args) {
        String endpoint = "your endpoint";
        String region = "your region";
        String accessKey = System.getenv("TOS_ACCESS_KEY");
        String secretKey = System.getenv("TOS_SECRET_KEY");
        String bucketName = "bucket-example";

        TOSV2 tos = new TOSV2ClientBuilder().build(region, endpoint, accessKey, secretKey);

        try{
            DeleteBucketRenameInput input = new DeleteBucketRenameInput().setBucket(bucketName);
            DeleteBucketRenameOutput output = tos.deleteBucketRename(input);
            System.out.println("deleteBucketRename succeed, " + output);
        } catch (TosClientException e) {
            // 操作失败,捕获客户端异常,一般情况是请求参数错误,此时请求并未发送
            System.out.println("deleteBucketRename failed");
            System.out.println("Message: " + e.getMessage());
            if (e.getCause() != null) {
                e.getCause().printStackTrace();
            }
        } catch (TosServerException e) {
            // 操作失败,捕获服务端异常,可以获取到从服务端返回的详细错误信息
            System.out.println("deleteBucketRename failed");
            System.out.println("StatusCode: " + e.getStatusCode());
            System.out.println("Code: " + e.getCode());
            System.out.println("Message: " + e.getMessage());
            System.out.println("RequestID: " + e.getRequestID());
        } catch (Throwable t) {
            // 作为兜底捕获其他异常,一般不会执行到这里
            System.out.println("deleteBucketPolicy failed");
            System.out.println("unexpected exception, message: " + t.getMessage());
        }
    }
}

相关文档