调用RenameTable接口重命名表或将表移动到其他命名空间。
注意事项
-
newName和newNamespaceName至少填写一个。可以只修改表名、只修改命名空间,或同时修改两者。
-
可通过versionToken参数进行乐观锁控制,防止并发操作冲突。
-
新表名在目标命名空间下必须唯一。
权限说明
|
API |
Action |
说明 |
|
RenameTable |
oss:RenameTable |
重命名表(同时检查Table Policy) |
请求语法
PUT /tables/{tableBucketARN}/{namespace}/{name}/rename HTTP/1.1
Content-type: application/json
Host: cn-hangzhou.oss-tables.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
{
"newNamespaceName": "string",
"newName": "string",
"versionToken": "string"
}
请求参数
|
名称 |
数据类型 |
是否必选 |
示例值 |
描述 |
|
tableBucketARN |
字符串 |
是 |
acs:osstables:cn-hangzhou:1234567890:bucket/my-table-bucket |
Table Bucket的ARN,格式为acs:osstables:{region}:{uid}:bucket/{bucketName}。位于URI中。 |
|
namespace |
字符串 |
是 |
my_namespace |
表所在的命名空间名称。位于URI中。 |
|
name |
字符串 |
是 |
my_table |
表的当前名称。位于URI中。 |
|
newNamespaceName |
字符串 |
否 |
new_namespace |
新的命名空间名称。与newName至少填写一个,用于将表移动到其他命名空间。位于请求体中。 |
|
newName |
字符串 |
否 |
new_table |
新的表名,1~255个字符,只允许小写字母、数字和下划线。与newNamespaceName至少填写一个。位于请求体中。 |
|
versionToken |
字符串 |
否 |
aaabbb |
版本token(乐观锁),用于防止并发操作冲突。位于请求体中。 |
示例
-
请求示例
PUT /tables/acs%3Aosstables%3Acn-hangzhou%3A1234567890%3Abucket%2Fmy-table-bucket/my_namespace/my_table/rename HTTP/1.1 Content-type: application/json Host: cn-hangzhou.oss-tables.aliyuncs.com Date: Thu, 10 Apr 2025 08:00:00 GMT Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/osstables/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c**** { "newNamespaceName": "new_namespace", "newName": "new_table", "versionToken": "aaabbb" } -
返回示例
HTTP/1.1 204 No Content Server: AliyunOSS x-oss-request-id: 5C06A3B67B8B5A3DA422**** x-oss-server-time: 3
SDK
RenameTable接口所对应的各语言SDK如下:
命令行工具ossutil
RenameTable接口所对应的ossutil命令,请参见rename-table。
错误码
|
错误码 |
HTTP状态码 |
描述 |
|
BadRequestException |
400 |
请求无效或格式错误。 |
|
ForbiddenException |
403 |
调用者无权执行此请求。 |
|
NotFoundException |
404 |
请求的资源不存在。 |
|
ConflictException |
409 |
请求与之前的写入操作存在冲突。 |