Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Centro de ayuda> Object Storage Service> Referencia de la API> Las API> Configuración avanzada del bucket> Configuración de notificación de evento para un bucket
Actualización más reciente 2023-07-11 GMT+08:00

Configuración de notificación de evento para un bucket

Funciones

Esta operación notifica a los usuarios de sus operaciones en los bucket, lo que permite a los usuarios saber los eventos ocurridos en los bucket de manera oportuna.

De forma predeterminada, la función de notificación de un bucket no está habilitada y el elemento NotificationConfiguration es null. Si desea deshabilitar la función, establezca el elemento NotificationConfiguration en null.

1
2
<NotificationConfiguration>
</NotificationConfiguration> 

Después de recibir una solicitud para configurar la notificación de evento, OBS verifica si existe el tema SMN especificado y si el tema está autorizado a OBS. Si el tema existe y está autorizado a OBS, OBS envía una notificación de prueba al suscriptor del tema.

Para realizar esta operación, debe tener el permiso PutBucketNotification. De forma predeterminada, el permiso se concede únicamente al propietario del bucket. Sin embargo, se puede conceder a otros usuarios configurando la política de bucket.

1. Para obtener más información acerca de cómo otorgar temas a OBS, consulte Configuración de políticas de temas.

2. El cuerpo de una solicitud de SMN no puede superar los 100 KB de tamaño.

3. Un cuerpo de solicitud puede contener un máximo de 100 elementos de TopicConfig.

Sintaxis de solicitud

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
PUT /?notification HTTP/1.1 
Host: bucketname.obs.region.myhuaweicloud.com Date: date
Authorization: authorization string

<NotificationConfiguration>  
    <TopicConfiguration>  
        <Id>ConfigurationId</Id>  
        <Filter>  
            <Object>  
                <FilterRule>  
                    <Name>prefix</Name>  
                    <Value>prefix-value</Value>  
                </FilterRule>  
                <FilterRule>  
                    <Name>suffix</Name>  
                    <Value>suffix-value</Value>  
                </FilterRule>  
           </Object>  
        </Filter>  
        <Topic>TopicARN</Topic>  
        <Event>event-type</Event>  
        <Event>event-type</Event>  
        ...  
    </TopicConfiguration> 
    ... 
</NotificationConfiguration>

Parámetros de solicitud

Esta solicitud no contiene ningún parámetro.

Encabezados de solicitud

Esta solicitud utiliza encabezados comunes. Para más detalles, consulte Tabla 3.

Elementos de solicitud

Esta solicitud contiene elementos para especificar la configuración de notificación para el bucket en formato XML. Para obtener más información sobre los elementos de configuración, consulte Tabla 1.

Tabla 1 Elementos de solicitud para la configuración de la función de notificación

Elemento

Descripción

Obligatorio

NotificationConfiguration

Elemento raíz para configurar la función de notificación de eventos de un bucket. Si el subelemento es null, la función está deshabilitada.

Tipo: element

Antepasado: ninguno

Hijos: no o múltiples TopicConfigurations

TopicConfiguration

Elemento para configurar el tema de notificación de evento.

Tipo: element

Antepasado: NotificationConfiguration

Hijos: Id, Filter, Topic, Event, or Events

No

Topic

URN del tema de notificación de evento. Cuando OBS detecta un evento específico en el bucket, publica un mensaje de notificación para el tema. El valor del tema se puede encontrar en el tema de SMN.

Tipo: string

Antepasado: TopicConfiguration

Plantilla:

1
<Topic>urn:smn:region:project_id:smn_topic</Topic>

Ejemplo:

1
<Topic>urn:smn:eu-de:d745b885f14941369b2d2138e7a65bef:obs_test</Topic>

Requerido si se agrega TopicConfiguration

Id

ID único de cada notificación de evento. Si el usuario no especifica un ID, el sistema asigna un ID automáticamente.

Tipo: string

Antepasado:

TopicConfiguration

No

Filter

Elemento utilizado para almacenar reglas de filtrado de nombres de objeto.

Tipo: element

Antepasado:

TopicConfiguration

Hijos: Object

No

Object

Elemento que define la regla de filtrado. La regla filtra los objetos basándose en los prefijos y sufijos de los nombres de objeto.

Tipo: element

Antepasado: Filter

Hijos: uno o más FilterRules

No

FilterRule

Elemento que define los pares clave-valor de la regla de filtrado

Tipo: element

Antepasado: Object

Hijos: Name, Value

No

Name

Prefijo o sufijo de nombres de objeto para filtrar

Tipo: string

Antepasado: FilterRule

Opciones de valor: prefix, suffix

No

Value

Palabra clave de los nombres de objetos. En función del prefijo o sufijo definido por Name, introduzca la palabra clave para filtrar objetos. Una string más larga de caracteres proporciona un resultado de filtrado más preciso. Se admite un máximo de 1024 caracteres.

Tipo: string

Antepasado: FilterRule

No

Event

Tipo de eventos que deben ser notificados

NOTA:

Se pueden agregar varios tipos de eventos en un elemento TopicConfiguration.

Tipo: string

Opciones de valor:

Se pueden utilizar los siguientes valores para cargar un objeto:

  • ObjectCreated:Put
  • ObjectCreated:Post
  • ObjectCreated:Copy
  • ObjectCreated:CompleteMultipartUpload

O utilice caracteres comodín para admitir todas las operaciones de carga:

  • ObjectCreated:*

Se pueden utilizar los siguientes valores para eliminar un objeto:

  • ObjectRemoved:Delete
  • ObjectRemoved:DeleteMarkerCreated

O utilice caracteres comodín para admitir todas las operaciones de eliminación:

  • ObjectRemoved:*

Antepasado:

TopicConfiguration

Requerido si se agrega TopicConfiguration

Sintaxis de respuesta

1
2
3
4
HTTP/1.1 status_code
Date: date
Content-Length: length
Content-Type: type

Encabezados de respuesta

La respuesta a la solicitud utiliza encabezados comunes. Para más detalles, consulte Tabla 1.

Elementos de respuesta

Esta respuesta no implica elementos.

Respuestas de error

Cuando se llama a esta operación, el sistema comprueba si el elemento NotificationConfiguration es válido y si la configuración es válida. En la siguiente tabla se enumeran los errores comunes y las posibles causas de esta operación.

Tabla 2 Códigos de error y posibles causas

Código de error

Descripción

Código de estado de HTTP

InvalidArgument

Las posibles causas de este error son:

  • No se admite el evento especificado.
  • El URN especificado no existe o es incorrecto.
  • La región especificada en el URN es diferente a la región donde reside el bucket.
  • Las reglas de filtrado especificadas se superponen.

400 Bad Request (400: Solicitud errónea)

AccessDenied

El operador no es el propietario del bucket y no se le ha concedido el permiso PutBucketNotification.

403 Forbidden (403: Prohibido)

Modelo de solicitud

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
PUT /?notification HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
Accept: */*
Date: WED, 01 Jul 2015 03:15:45 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:uRTt8YTkAqJCUfWfYkveEcIGAC0=
Content-Length: 538

<NotificationConfiguration> 
  <TopicConfiguration> 
    <Id>ConfigurationId</Id>  
    <Filter>
      <Object>
        <FilterRule>
          <Name>prefix</Name>
          <Value>object</Value>
        </FilterRule>
        <FilterRule>
          <Name>suffix</Name>
          <Value>txt</Value>
        </FilterRule>
      </Object> 
    </Filter>  
    <Topic>urn:smn:region:4b29a3cb5bd64581bda5714566814bb7:tet555</Topic>  
    <Event>ObjectCreated:Put</Event> 
  </TopicConfiguration>
</NotificationConfiguration>

Modelo de respuesta

1
2
3
4
5
6
HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: 9046000001643C8E80C19FAC4D8068E3
x-obs-id-2: 32AAAQAAEAABSAAkgAIAABAAAQAAEAABCTFAxJPTib3GkcQ7nVVs4C8Z6NNcfVDu
Date: WED, 01 Jul 2015 03:15:46 GMT
Content-Length: 0