TOS 支持在桶内 Rename 单个对象的 Key,不拷贝和删除数据。
以下代码用于对象重命名功能。
#include "TosClientV2.h" using namespace VolcengineTos; int main(void){ // 初始化 TOS 账号信息 // Your Region 填写 Bucket 所在 Region std::string region = "Your Region"; std::string accessKey = std::getenv("TOS_ACCESS_KEY"); std::string secretKey = std::getenv("TOS_SECRET_KEY"); // 填写 Bucket 名称,例如 examplebucket std::string bucketName = "examplebucket"; // 填写Object完整路径,完整路径中不能包含Bucket名称,例如exampledir/exampleobject.txt。 std::string objectName = "exampledir/exampleobject1.txt"; std::string objectNameNew = "exampledir/exampleobject2.txt"; // 初始化网络等资源 InitializeClient(); // 创建交互的 client TosClientV2 client(region, accessKey, secretKey); // 设置桶的策略配置 PutBucketRenameInput input(bucketName, true); auto output = client.putBucketRename(input); if (!output.isSuccess()) { // 异常处理 std::cout << "PutBucketRename failed." << output.error().String() << std::endl; // 释放网络等资源 CloseClient(); return -1; } std::cout << "PutBucketRename success." << std::endl; RenameObjectInput renameInput(bucketName, objectName, objectNameNew); auto renameOutput = client.renameObject(renameInput); if (!renameOutput.isSuccess()) { // 异常处理 std::cout << "RenameObject failed." << renameOutput.error().String() << std::endl; // 释放网络等资源 CloseClient(); return -1; } std::cout << "RenameObject success." << std::endl; // 释放网络等资源 CloseClient(); return 0; }
关于 RenameObject 的 API 文档,请参见 RenameObject。