
# 查看事件通知(Java SDK)
#### 功能介绍
OBS事件通知功能帮助您对桶的重要的操作进行实时监控，重要操作触发时可及时通知到您，确保您安全、及时知道发生在桶上的关键事件。
调用获取桶的事件通知配置接口，可获取指定桶的事件通知配置。
#### 接口约束
- 您必须是桶拥有者或拥有获取桶的事件通知配置的权限，才能获取桶的事件通知配置。建议使用IAM或桶策略进行授权，如果使用IAM则需授予obs:bucket:GetBucketNotification权限，如果使用桶策略则需授予GetBucketNotification权限。相关授权方式介绍可参见[OBS权限控制概述](https://support.huaweicloud.com/perms-cfg-obs/obs_40_0001.html)，配置方式详见[使用IAM自定义策略](https://support.huaweicloud.com/usermanual-obs/obs_03_0121.html)、[自定义创建桶策略](https://support.huaweicloud.com/usermanual-obs/obs_03_0123.html)。
- OBS支持的Region与Endpoint的对应关系，详细信息请参见[地区与终端节点](https://developer.huaweicloud.com/endpoint?OBS)。
 
#### 方法定义
ObsClient.getBucketNotification(final BaseBucketRequest request)
#### 请求参数说明
表1请求参数列表 
| **参数名称** | **参数类型**                                         | **是否必选** | **描述**                                                                                        |
|:---|:---|:---|:---|
| request  | [BaseBucketRequest] | 必选       | **参数解释** **：** 查看事件通知请求参数，详见[表2]。 |
   
 表2BaseBucketRequest 
| **参数名称**   | **参数类型** | **是否必选** | **描述**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| bucketName | String   | 必选       | **参数解释** **：** 桶名。 **约束限制：** - 桶的名字需全局唯一，不能与已有的任何桶名称重复，包括其他用户创建的桶。  - 桶命名规则如下： - 3～63个字符，数字或字母开头，支持小写字母、数字、"-"、"."。  - 禁止使用IP地址。  - 禁止以"-"或"."开头及结尾。  - 禁止两个"."相邻（如："my..bucket"）。  - 禁止"."和"-"相邻（如："my-.bucket"和"my.-bucket"）。    - 同一用户在同一个区域多次创建同名桶不会报错，创建的桶属性以第一次请求为准。   **默认取值：** 无 |
   
#### 返回结果说明
表3BucketNotificationConfiguration 
| **参数名称**                    | **参数类型**                                                                   | **描述**                                                                                                                                                                                                                |
|:---|:---|:---|
| topicConfigurations         | List\<[表4 TopicConfiguration]\>           | **参数解释** **：** 配置事件通知主题的列表。 **取值范围：** 详见[表4 TopicConfiguration]                         |
| functionGraphConfigurations | List\<[表5 FunctionGraphConfiguration]\> | **参数解释** **：** 配置函数工作流服务（FunctionGraph）的列表。 **取值范围：** 详见[表5 FunctionGraphConfiguration] |
   
 表4TopicConfiguration 
| **参数名称** | **参数类型**                                                       | **描述**                                                                                                                                                                                       |
|:---|:---|:---|
| id       | String                                                         | **参数解释** **：** 每项事件通知配置的唯一标识，如果是用户未指定ID，系统将自动分配一个ID。                                                                                                             |
| filter   | [表6 Filter]                  | **参数解释** **：** 用以保存过滤对象名的一组规则。 **取值范围：** 详见[表6 Filter]         |
| topic    | String                                                         | **参数解释** **：** 事件通知主题的URN，当OBS检测到桶中发生特定的事件后，将会发布通知消息至该主题，可以在[消息通知服务主题](https://console.huaweicloud.com/smn/#/smn/manager/topic)部分找到具体值。                        |
| events   | List\<[表7 EventTypeEnum]\> | **参数解释** **：** 需要发布通知消息的事件类型列表。 **取值范围：** 详见[表7 EventTypeEnum] |
   
 表5FunctionGraphConfiguration 
| **参数名称**      | **参数类型**                                                       | **描述**                                                                                                                                                                                       |
|:---|:---|:---|
| id            | String                                                         | **参数解释** **：** 每项事件通知配置的唯一标识，如果是用户未指定ID，系统将自动分配一个ID。                                                                                                          |
| filter        | [表6 Filter]                  | **参数解释** **：** 用以保存过滤对象名的一组规则。 **取值范围：** 详见[表6 Filter]           |
| functionGraph | String                                                         | **参数解释** **：** 函数工作流服务的URN，当OBS检测到桶中发生特定的事件后，将会发送消息至函数工作流服务调用执行该工作流。                                                    |
| events        | List\<[表7 EventTypeEnum]\> | **参数解释** **：** 需要发布通知消息的事件类型列表。 **取值范围：** 详见[表7 EventTypeEnum] |
   
 表6Filter 
| **参数名称**    | **参数类型**                                                 | **描述**                                                                                                                                                                                   |
|:---|:---|:---|
| filterRules | List\<[表8 FilterRule]\> | **参数解释** **：** 用以保存过滤对象名的一组规则。 **取值范围：** 详见[表8 FilterRule] |
   
 表7EventTypeEnum 
| **常量值**                                  | **描述**                                                                                |
|:---|:---|
| OBJECT_CREATED_ALL                       | 所有创建对象操作的事件。包含PUT上传对象、POST上传对象、复制对象、合并段。                                              |
| OBJECT_CREATED_PUT                       | PUT上传对象的事件。                                                                           |
| OBJECT_CREATED_POST                      | POST上传对象的事件。                                                                          |
| OBJECT_CREATED_COPY                      | 复制对象的事件。                                                                              |
| OBJECT_CREATED_COMPLETE_MULTIPART_UPLOAD | 合并段的事件。                                                                               |
| OBJECT_REMOVED_ALL                       | 所有调用删除、取消段接口的对象操作的事件。 包含指定对象版本号删除对象；多版本开启后，不指定对象版本号删除对象。 |
| OBJECT_REMOVED_DELETE                    | 指定对象版本号删除对象的事件。                                                                       |
| OBJECT_REMOVED_DELETE_MARKER_CREATED     | 多版本开启后，不指定对象版本号删除对象的事件。                                                               |
   
 表8FilterRule 
| **参数名称** | **参数类型** | **是否必选** | **描述**                                                                                                                                                                                                                                   |
|:---|:---|:---|:---|
| name     | String   | 可选       | 指定规则按对象名前缀或者后缀进行过滤，支持的值： - prefix  - suffix   |
| value    | String   | 可选       | 指定的对象名关键字，用以按照前缀或者后缀过滤对象。                                                                                                                                                                                                                |
   
#### 代码示例
以下代码展示了如何查看桶的事件通知：
```
// Endpoint以北京四为例，其他地区请按实际情况填写。
String endPoint = "https://obs.cn-north-4.myhuaweicloud.com";
// 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险，建议在配置文件或者环境变量中密文存放，使用时解密，确保安全；本示例以ak和sk保存在环境变量中为例，运行本示例前请先在本地环境中设置环境变量ACCESS_KEY_ID和SECRET_ACCESS_KEY_ID。
// 您可以登录访问管理控制台获取访问密钥AK/SK，获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html
String ak = System.getenv("ACCESS_KEY_ID");
String sk = System.getenv("SECRET_ACCESS_KEY_ID");
// 创建ObsClient实例
ObsClient obsClient = new ObsClient(ak, sk, endPoint);
BucketNotificationConfiguration config = obsClient.getBucketNotification("bucketname");
System.out.println(config);
```
