
# 获取DIS通知策略
#### 功能说明
如果想查询OBS桶上配置的DIS通知策略，可以调用此接口，接口会返回桶上配置的所有策略，一次性返回，不分页。了解更多设置DIS通知策略的相关信息，请参见[使用DIS发送OBS事件通知](https://support.huaweicloud.com/usermanual-obs/obs_03_0147.html)。
融合桶不支持设置DIS通知策略。
#### 接口约束
- OBS支持的Region与Endpoint的对应关系，详细信息请参见[地区与终端节点](https://developer.huaweicloud.com/endpoint?OBS)。

- 须知：调用DIS策略相关接口前，需在初始化obsClient时调用obs.WithSignature(obs.SignatureObs)指定协议类型。
 
#### 授权信息
您必须是桶拥有者或者拥有**Tenant Administrator** 权限，才能调用本接口。配置Tenant Administrator权限，需要使用**角色与策略授权** （旧版IAM，即IAM v3接口），授权操作请参考[使用IAM授权](https://support.huaweicloud.com/qs-iam/iam_01_0030.html)。
#### 方法定义
func (obsClient ObsClient) GetDisPolicy(bucketName string, extensions ...extensionOptions) (output \*GetDisPolicyOutput, err error)
#### 请求参数说明
表1请求参数说明 
| 参数         | 类型     | 必填 | 说明                                                     |
|:---|:---|:---|:---|
| bucketName | string | 是  | **参数解释：** 桶名。 |
   
#### 响应参数说明
表2GetDisPolicyOutput参数说明 
| 字段        | 类型                | 说明                                                                                                                                                                                                                                                         |
|:---|:---|:---|
| BaseModel | BaseModel         | **参数解释：** 基础模型，包含 RequestId 等。                                                                                                                                                                                  |
| Rules     | \[\]DisPolicyRule | DIS 策略规则列表 **约束限制：** 同一个桶下的不同策略前缀不能重复和起始包含，委托建议使用同一个 **取值范围：** 数组大小的取值范围为\[1, 10\] |
   
表3DisPolicyRule参数说明 
| 字段      | 类型         | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
|:---|:---|:---|
| ID      | string     | 规则 ID **取值范围：** \[1, 256\]，满足"\^\[a-zA-Z0-9_-\]{1, 256}$"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| Stream  | string     | DIS服务通道名称。 需要先在DIS服务创建此通道                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| Project | string     | DIS服务通道所属的项目ID                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| Events  | \[\]string | OBS事件列表 有效值：长度\[0, 1023\]，值允许为任意字符，支持如下事件类型： - ObjectCreated:\* （所有上传操作）  - ObjectCreated:Put （上传对象）  - ObjectCreated:Post （使用浏览器上传对象）  - ObjectCreated:Copy （拷贝对象）  - ObjectCreated:CompleteMultipartUpload （合并段）  - ObjectRemoved:\* （所有删除操作）  - ObjectRemoved:Delete （指定对象版本号删除对象）  - ObjectRemoved:DeleteMarkerCreated （不指定对象版本号删除对象）   |
| Prefix  | string     | 对象名前缀，用于指定的对象名关键字，根据定义的前缀，输入需要过滤的对象的关键字信息，字符越长匹配精度越高，最大可支持1024个字符，最小可为空。同时，prefix和suffix加起来长度最大为1024个字符                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| Suffix  | string     | 对象名后缀。用于指定的对象名关键字，根据定义的后缀，输入需要过滤的对象的关键字信息，字符越长匹配精度越高，最大可支持1024个字符，最小可为空。同时，prefix和suffix加起来长度最大为1024个字符                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| Agency  | string     | IAM委托名，被委托方必须包含OBS服务，赋予的权限必须是DIS服务的DIS Administrator或DIS User                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   
#### 代码示例
**示例**-查询桶examplebucket上已经配置的DIS通知策略。
```
package main
import (
    "fmt"
    obs "github.com/huaweicloud/huaweicloud-sdk-go-obs/obs"
    "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.cn-north-4.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.GetDisPolicy("examplebucket")
    if err != nil {
        log.Fatalf("Failed to get DIS policy: %v", err)
    }
    fmt.Printf("Request ID: %s\n", output.RequestId)
    fmt.Printf("Total rules: %d\n\n", len(output.Rules))
    for i, rule := range output.Rules {
        fmt.Printf("[%d] DIS Rule:\n", i+1)
        fmt.Printf("  ID: %s\n", rule.ID)
        fmt.Printf("  Stream: %s\n", rule.Stream)
        fmt.Printf("  Project: %s\n", rule.Project)
        fmt.Printf("  Events: %v\n", rule.Events)
        fmt.Printf("  Prefix: %s\n", rule.Prefix)
        fmt.Printf("  Suffix: %s\n", rule.Suffix)
        fmt.Printf("  Agency: %s\n", rule.Agency)
        fmt.Println()
    }
}
```
#### 相关链接
DIS通知接口返回的错误码含义、问题原因及处理措施可参考[OBS错误码](https://support.huaweicloud.com/api-obs/obs_04_0115.html#section1)。
