更新时间:2026-08-14 GMT+08:00

删除对象标签

功能介绍

可通过本接口删除对象的标签信息。了解更多对象标签相关信息,请参考对象标签

如果请求中不携带版本号(versionId),需要确保执行者有DeleteObjectTagging权限。如果请求中携带版本号(versionId),需要确保执行者有DeleteObjectTagging+DeleteObjectVersionTagging权限。缺省情况下只有对象的所有者可以执行此操作,也可以通过设置桶策略或用户策略给其他用户。

默认删除Object当前版本的标签信息。可以通过指定versionId参数来删除指定Object版本的标签信息。如果对应版本为删除标记(Delete Marker),则OBS将返回404 Not Found。

接口约束

并行文件系统不支持本接口。

方法定义

obsClient.deleteObjectTagging(ObjectTaggingRequest request)

请求参数说明

表1 请求参数列表

参数名称

参数类型

是否必选

描述

request

ObjectTaggingRequest

必选

参数解释

设置对象属性请求参数,详见ObjectTaggingRequest

表2 ObjectTaggingRequest

参数名称

参数类型

是否必选

描述

bucketName

String

参数解释

桶名。

约束限制:

  • 桶的名字需全局唯一,不能与已有的任何桶名称重复,包括其他用户创建的桶。
  • 桶命名规则如下:
    • 3~63个字符,数字或字母开头,支持小写字母、数字、“-”、“.”。
    • 禁止使用IP地址。
    • 禁止以“-”或“.”开头及结尾。
    • 禁止两个“.”相邻(如:“my..bucket”)。
    • 禁止“.”和“-”相邻(如:“my-.bucket”和“my.-bucket”)。
  • 同一用户在同一个区域多次创建同名桶不会报错,创建的桶属性以第一次请求为准。

默认取值:

objectKey

String

参数解释:

对象名。对象名是对象在存储桶中的唯一标识。对象名是对象在桶中的完整路径,路径中不包含桶名。

例如,您对象的访问地址为examplebucket.obs.ap-southeast-1.myhuaweicloud.com/folder/test.txt,对象名为folder/test.txt。

取值范围:

长度大于0且不超过1024的字符串。

默认取值:

versionId

String

参数解释:

对象的版本号。

取值范围:

长度为32的字符串。

默认取值:

objectTagResult

ObjectTagResult

仅设置标签时必选

记录要设置到对象上的标签

表3 ObjectTagResult

参数名称

参数类型

是否必选

描述

tagSet

TagSet

必选

(作为请求参数时)

参数解释:

对象标签,用以标识哪些对象可以匹配到当前这条规则。详见TagSet

默认取值:

statusCode

int

参数解释:

HTTP状态码。

取值范围:

状态码是一组从2xx(成功)到4xx或5xx(错误)的数字代码,状态码表示了请求响应的状态。

完整的状态码列表请参见状态码

默认取值:

responseHeaders

Map<String, Object>

参数解释:

HTTP响应消息头列表,由多个元组构成。元组中String代表响应消息头的名称,Object代表响应消息头的值。

默认取值:

表4 TagSet

参数名称

参数类型

是否必选

描述

tags

List<Tag>

必选

参数解释:

对象标签列表,详见Tag

表5 Tag

参数名称

参数类型

是否必选

描述

key

String

必选

参数解释:

标签的名字。

约束限制:

  • 不能为空,不能包含非打印字ASCII(0-31)、“=”、“*”、“<”、“>”、“\”。
  • 同一个桶,Tag中的key不能重复。
  • 最长为36个字符。

默认取值:

value

String

必选

参数解释:

标签的值。

约束限制:

  • 可以为空,不为空时不能包含非打印字ASCII(0-31)、“=”、“*”、“<”、“>”、“\”。
  • 最长为43个字符。

默认取值:

返回结果说明

表6 返回结果如下

方法名称

返回值类型

说明

deleteObjectTagging(ObjectTaggingRequest request)

HeaderResponse

用于删除对象标签。

表7 返回结果HeaderResponse(SDK公共响应结果)各项属性说明

参数名称

参数类型

描述

statusCode

int

参数解释:

HTTP状态码。

取值范围:

状态码是一组从2xx(成功)到4xx或5xx(错误)的数字代码,状态码表示了请求响应的状态。

完整的状态码列表请参见状态码

默认取值:

responseHeaders

Map<String, Object>

参数解释:

HTTP响应消息头列表,由多个元组构成。元组中String代表响应消息头的名称,Object代表响应消息头的值。

默认取值:

代码示例

本示例用于删除examplebucket桶中objectname对象的对象标签。

import android.util.Log;

import com.obs.services.ObsClient;
import com.obs.services.exception.ObsException;
import com.obs.services.model.HeaderResponse;
import com.obs.services.model.ObjectTaggingRequest;

public class DeleteObjectTaggingDemo {
    private static final String TAG = "DeleteObjectTaggingDemo";

    public void deleteObjectTagging() {
        // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量ACCESS_KEY_ID和SECRET_ACCESS_KEY_ID。
        // 您可以登录访问管理控制台获取访问密钥AK/SK
        String ak = System.getenv("ACCESS_KEY_ID");
        String sk = System.getenv("SECRET_ACCESS_KEY_ID");
        // 【可选】如果使用临时AK/SK和SecurityToken访问OBS,同样建议您尽量避免使用硬编码,以降低信息泄露风险。
        // String securityToken = System.getenv("SECURITY_TOKEN");
        // endpoint填写桶所在的endpoint, 此处以华北-北京四为例,其他地区请按实际情况填写。
        String endPoint = "https://your-endpoint";

        // 创建ObsClient实例
        ObsClient obsClient = new ObsClient(ak, sk, endPoint);

        try {
            // 删除对象标签
            String bucketName = "examplebucket";
            String objectKey = "objectname";
            String objectVersionId = "";
            ObjectTaggingRequest objectTaggingRequest =
                    new ObjectTaggingRequest(bucketName, objectKey, objectVersionId, null);
            HeaderResponse response = obsClient.deleteObjectTagging(objectTaggingRequest);
            Log.i(TAG, "DeleteObjectTagging successfully");
            Log.i(TAG, "HTTP Code:" + response.getStatusCode());
        } catch (ObsException e) {
            Log.e(TAG, "DeleteObjectTagging failed");
            // 请求失败,打印http状态码
            Log.e(TAG, "HTTP Code:" + e.getResponseCode());
            // 请求失败,打印服务端错误码
            Log.e(TAG, "Error Code:" + e.getErrorCode());
            // 请求失败,打印详细错误信息
            Log.e(TAG, "Error Message:" + e.getErrorMessage());
            // 请求失败,打印请求id
            Log.e(TAG, "Request ID:" + e.getErrorRequestId());
            Log.e(TAG, "Host ID:" + e.getErrorHostId());
        } catch (Exception e) {
            Log.e(TAG, "DeleteObjectTagging failed");
            // 其他异常信息打印
            Log.e(TAG, e.getMessage());
        }
    }
}