Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Central de ajuda/ Object Storage Service/ Referência de API/ As API/ Configurações avançadas de bucket/ Configuração da notificação de evento para um bucket
Atualizado em 2022-11-07 GMT+08:00

Configuração da notificação de evento para um bucket

Funções

Essa operação notifica os usuários sobre suas operações em buckets, permitindo que os usuários saibam que os eventos ocorreram em buckets em tempo hábil.

Por padrão, a função de notificação de um bucket não está ativada e o elemento NotificationConfiguration é null. Se você quiser desativar a função, defina o elemento NotificationConfiguration como null.

1
2
<NotificationConfiguration>
</NotificationConfiguration> 

Depois de receber uma solicitação para configurar a notificação de eventos, o OBS verifica se o Tópico SMN especificado existe e se o tópico está autorizado para o OBS. Se o tópico existir e for autorizado pelo OBS, o OBS enviará uma notificação de teste para o assinante do tópico.

Para executar essa operação, você deve ter a permissão PutBucketNotification. Por padrão, a permissão é concedida somente ao proprietário do bucket. No entanto, ele pode ser concedido a outros usuários configurando a política de bucket.

1. Para obter detalhes sobre como conceder tópicos ao OBS, consulte Configuração de políticas de tópico.

2. Um corpo de solicitação SMN não pode exceder 100 KB de tamanho.

3. Um corpo de solicitação pode conter no máximo 100 elementos de TopicConfig.

Sintaxe da solicitação

 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 
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 solicitação

Esta solicitação não contém nenhum parâmetro.

Cabeçalhos de solicitação

Essa solicitação usa cabeçalhos comuns. Para mais detalhes, consulte Tabela 3.

Elementos de solicitação

Essa solicitação contém elementos para especificar a configuração de notificação para o bucket no formato XML. Para obter detalhes sobre os elementos de configuração, consulte Tabela 1.

Tabela 1 Solicitar elementos para configuração da função de notificação

Elemento

Descrição

Obrigatório

NotificationConfiguration

Elemento raiz para configurar a função de notificação de eventos de um bucket. Se o subelemento for null, a função é desativada.

Tipo: elemento

Antepassado: nenhum

Crianças: sem ou múltiplas TopicConfigurations

Sim

TopicConfiguration

Elemento para configurar o tópico de notificação de evento.

Tipo: elemento

Antepassado: NotificationConfiguration

Crianças: Id, Filtro, Tópico, Evento ou Eventos

Não

Topic

URN do tópico de notificação de evento. Quando o OBS detecta um evento específico no bucket, ele publica uma mensagem de notificação para o tópico. O valor do tópico pode ser encontrado em Tópico SMN.

Tipo: string

Antepassado: TopicConfiguration

Modelo:

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

Exemplo:

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

Necessário se TopicConfiguration for adicionado

Id

ID exclusivo de cada notificação de evento. Se o usuário não especificar uma ID, o sistema atribuirá uma ID automaticamente.

Tipo: string

Antepassado:

TopicConfiguration

Não

Filter

Elemento usado para armazenar regras de filtragem de nomes de objetos.

Tipo: elemento

Antepassado:

TopicConfiguration

Crianças: Objeto

Não

Object

Elemento que define a regra de filtragem. A regra filtra objetos com base nos prefixos e sufixos de nomes de objetos.

Tipo: elemento

Antepassado: Filtro

Filhos: um ou mais FilterRules

Não

FilterRule

Elemento que define pares chave-valor da regra de filtragem

Tipo: elemento

Antepassado: Objeto

Crianças: Nome, Valor

Não

Name

Prefixo ou sufixo de nomes de objetos para filtragem

Tipo: string

Antepassado: FilterRule

Opções de valor: prefixo, sufixo

Não

Value

Palavra-chave de nomes de objetos. Com base no prefixo ou sufixo definido por Name, insira a palavra-chave para filtrar objetos. Uma seqüência mais longa de caracteres proporciona um resultado de filtragem mais preciso. Um máximo de 1024 caracteres são suportados.

Tipo: string

Antepassado: FilterRule

Não

Event

Tipo de eventos que precisam ser notificados

NOTA:

Vários tipos de evento podem ser adicionados em um item .

Tipo: string

Opções de valor:

Os seguintes valores podem ser usados para carregar um objeto:

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

Ou use caracteres curinga para suportar todas as operações de upload:

  • ObjectCreated * *

Os seguintes valores podem ser usados para excluir um objeto:

  • ObjectRemoved:Delete
  • ObjectRemoved:DeleteMarkerCreated

Ou use caracteres curinga para suportar todas as operações de exclusão:

  • ObjectRemoved:*

Antepassado:

TopicConfiguration

Necessário se TopicConfiguration for adicionado

Sintaxe da resposta

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

Cabeçalhos de resposta

A resposta à solicitação usa cabeçalhos comuns. Para mais detalhes, consulte Tabela 1.

Elementos de resposta

Esta resposta não envolve elementos.

Respostas de erro

Quando esta operação está sendo chamada, o sistema verifica se o elemento NotificationConfiguration é válido e se a configuração é válida. A tabela a seguir lista os erros comuns e as possíveis causas dessa operação.

Tabela 2 Códigos de erro e possíveis causas

Código de erro

Descrição

Código de status HTTP

InvalidArgument

As possíveis causas deste erro são:

  • O evento especificado não é suportado.
  • O URN especificado não existe ou está incorreto.
  • A região especificada no URN é diferente da região onde o bucket reside.
  • As regras de filtragem especificadas se sobrepõem.

400 Solicitação inválida

AccessDenied

O operador não é o proprietário do bucket e não tem a permissão PutBucketNotification.

403 Proibido

Solicitação de exemplo

 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>

Resposta de exemplo

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