删除DIS通知策略
功能说明
如果清空OBS桶上配置的DIS通知策略,可以调用此接口,删除操作会移除桶的所有 DIS 策略。删除接口是幂等的,如果桶上未配置DIS通知策略,调用删除接口依然会成功,status code返回值为204。
融合桶不支持设置DIS通知策略。
授权信息
您必须是桶拥有者或者拥有Tenant Administrator权限,才能调用本接口。配置Tenant Administrator权限,需要使用角色与策略授权(旧版IAM,即IAM v3接口),授权操作请参考使用IAM授权。
接口约束
- OBS支持的Region与Endpoint的对应关系,详细信息请参见地区与终端节点。
- 须知:调用DIS策略相关接口前,需在初始化obsClient时调用obs.WithSignature(obs.SignatureObs)指定协议类型。
方法定义
func (obsClient ObsClient) DeleteDisPolicy(bucketName string, extensions ...extensionOptions) (output *BaseModel, err error)
请求参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| bucketName | string | 是 | 参数解释: 桶名。 |
响应参数说明
| 参数名称 | 参数类型 | 描述 |
|---|---|---|
| StatusCode | int | 参数解释: HTTP状态码。 约束限制: 无 取值范围: 状态码是一组从2xx(成功)到4xx或5xx(错误)的数字代码,状态码表示了请求响应的状态。完整的状态码列表请参见状态码。 默认取值: 无 |
| RequestId | string | 参数解释: OBS服务端返回的请求ID。 约束限制: 无 取值范围: 无 默认取值: 无 |
| ResponseHeaders | map[string][]string | 参数解释: HTTP响应头信息。 约束限制: 无 取值范围: 无 默认取值: 无 |
代码示例
示例-清空桶examplebucket上已经配置的所有DIS通知策略。
package main
import (
"fmt"
"log"
"os"
)
func main() {
// 推荐通过环境变量获取AKSK,这里也可以使用其他外部引入方式传入,如果使用硬编码可能会存在泄露风险。
// 您可以登录访问管理控制台获取访问密钥AK/SK。
ak := os.Getenv("AccessKeyID")
sk := os.Getenv("SecretAccessKey")
// 【可选】如果使用临时AK/SK和SecurityToken访问OBS,同样建议您尽量避免使用硬编码,以降低信息泄露风险。您可以通过环境变量获取访问密钥AK/SK,也可以使用其他外部引入方式传入。
securityToken := os.Getenv("SecurityToken")
// endpoint填写Bucket对应的Endpoint,这里以中国-香港为例,其他地区请按实际情况填写。
endPoint := "https://obs.ap-southeast-1.myhuaweicloud.com"
// 创建客户端
obsClient, err := obs.New(ak, sk, endPoint, obs.WithSecurityToken(securityToken))
if err != nil {
fmt.Printf("Create obsClient error, errMsg: %s", err.Error())
}
// 删除 DIS 策略
output, err := obsClient.DeleteDisPolicy("examplebucket")
if err != nil {
log.Fatalf("Failed to delete DIS policy: %v", err)
}
fmt.Printf("Request ID: %s\n", output.RequestId)
fmt.Println("DIS policy deleted successfully")
} 相关链接
DIS通知接口返回的错误码含义、问题原因及处理措施可参考OBS错误码。