Configure regras de notificação de eventos do OSS para processar, sincronizar, monitorar, acionar fluxos de trabalho de negócios ou registrar alterações em objetos em tempo real. Especifique quais objetos monitorar e direcione as notificações para um endpoint HTTP ou fila SMQ.
Pré-requisitos
Você ativou o Simple Message Queue (SMQ). É possível ativar o SMQ na página do product SMQ.
Notas de uso
Quando uma operação do OSS aciona uma regra de notificação de eventos, o OSS chama o SMQ para enviar uma notificação. Essa chamada pode falhar. Verifique o cabeçalho de resposta
x-oss-event-statuscodificado em Base64 para confirmar a entrega. Um valor decodificado de{"Result": "Ok"}indica sucesso.As notificações de eventos geram taxas do SMQ. {{XREF_0}}.
-
As notificações de eventos estão disponíveis em {{XREF_1}}.
É possível configurar até 10 regras de notificação de eventos por região. Para aumentar esse limite, entre em contato com o suporte técnico.
Objetos TS e M3U8 gerados a partir de fluxos do Real-Time Messaging Protocol (RTMP) não acionam regras de notificação de eventos. {{XREF_3}}.
Como funciona
Quando uma operação no seu bucket aciona uma regra de notificação de eventos, o SMQ envia uma notificação para o endpoint HTTP ou fila que você especificou.
Tipos de eventos
|
Grupo |
Tipo |
Descrição |
|
ObjectCreated (Criar objeto) |
ObjectCreated:PutObject |
Faz o upload de um objeto. {{XREF_4}}. |
|
ObjectCreated:PostObject |
Faz o upload de um objeto via POST baseado em formulário. {{XREF_5}}. |
|
|
ObjectCreated:CopyObject |
Copia um objeto. {{XREF_6}}. |
|
|
ObjectCreated:AppendObject |
Anexa dados para fazer o upload de um objeto. {{XREF_7}}. |
|
|
ObjectCreated:InitiateMultipartUpload |
Inicia um upload multipart. {{XREF_8}}. |
|
|
ObjectCreated:UploadPart |
Faz o upload de uma parte em um upload multipart. {{XREF_9}}. |
|
|
ObjectCreated:UploadPartCopy |
Copia uma parte em um upload multipart. {{XREF_10}}. |
|
|
ObjectCreated:CompleteMultipartUpload |
Conclui um upload multipart. {{XREF_11}}. |
|
|
ObjectCreated:PutSymlink |
Cria um link simbólico para um objeto. {{XREF_12}}. |
|
|
ObjectCreated:Mirror |
O objeto é criado por espelhamento. Nota
Por padrão, o espelhamento do OSS aciona ObjectCreated:PutObject. Para usar ObjectCreated:Mirror em vez disso, envie um ticket. |
|
|
ObjectCreated:* |
Qualquer evento com o prefixo Nota
Este curinga abrange todos os tipos de eventos atuais e futuros em ObjectCreated. |
|
|
ObjectDownloaded (Baixar objeto) |
ObjectDownloaded:GetObject |
Um objeto é baixado. |
|
ObjectModified (Modificar objeto) |
ObjectModified:UpdateObjectMeta |
Os metadados do objeto são modificados via UpdateObjectMeta. |
|
ObjectModified:ChangeStorageClass |
A classe de armazenamento de um objeto é alterada por uma regra de ciclo de vida. |
|
|
ObjectModified:* |
Qualquer evento com o prefixo Nota
Este curinga abrange todos os tipos de eventos atuais e futuros em ObjectModified. |
|
|
ObjectRemoved (Excluir objeto) |
ObjectRemoved:DeleteObject |
Exclui um único objeto. {{XREF_13}}. |
|
ObjectRemoved:DeleteObjects |
Exclui vários objetos. {{XREF_14}}. |
|
|
ObjectRemoved:AbortMultipartUpload |
Aborta um upload multipart e exclui suas partes. {{XREF_15}}. |
|
|
ObjectRemoved:* |
Qualquer evento com o prefixo Nota
Este curinga abrange todos os tipos de eventos atuais e futuros em ObjectRemoved. |
|
|
ObjectReplication (Replicar objeto) |
ObjectReplication:ObjectCreated |
Ocorre uma operação de gravação como parte de um processo de replicação de dados. |
|
ObjectReplication:ObjectRemoved |
Ocorre uma operação de exclusão como parte de um processo de replicação de dados. |
|
|
ObjectReplication:ObjectModified |
Ocorre uma operação de sobrescrita como parte de um processo de replicação de dados. |
|
|
ObjectReplication:* |
Qualquer evento com o prefixo Nota
Este curinga abrange todos os tipos de eventos atuais e futuros em ObjectReplication. |
|
|
ObjectRestore (Restaurar objeto) |
ObjectRestore:FinishRestore |
Um objeto é restaurado do armazenamento de arquivos. Aplica-se apenas a objetos Cold Archive e Deep Cold Archive. |
Mensagem de notificação
Cada notificação de evento contém um payload JSON codificado em Base64 com a seguinte estrutura:
{
"events": [
{
"eventName": "", // The event notification type.
"eventSource": "", // The source of the event notification. This value is fixed as "acs:oss".
"eventTime": "", // The time when the event occurred, in ISO 8601 format.
"eventVersion": "", // The version of the event notification. The current version is "1.0".
"oss": {
"bucket": {
"arn": "", // The Alibaba Cloud Resource Name (ARN) of the bucket, in the format of "acs:oss:region:uid:bucketname".
"name": "", // The name of the destination bucket.
"ownerIdentity": "" // The owner of the bucket.
},
"object": {
"deltaSize": "", // The change in the object size. For example, when a new object is created, this value is the object size. When an object is overwritten, this value is the difference in size between the new object and the old object, which can be negative.
"eTag": "", // The ETag of the object.
"key": "", // The object key.
"position": "", // The starting position for an append operation. This parameter applies only to the ObjectCreated:AppendObject event. The first AppendObject request for an object starts at byte 0.
"readFrom": "", // The starting position for a read operation. This parameter applies only to the ObjectDownloaded:GetObject event. For a non-range request, this value is 0. For a range request, this value is the starting byte of the request.
"readTo": "", // The ending position for a read operation. This parameter applies only to the ObjectDownloaded:GetObject event. For a non-range request, this value is the object size. For a range request, this value is the ending byte of the range request plus 1.
"size": "" // The size of the object.
},
"ossSchemaVersion": "", // The version of this schema. The current version is "1.0".
"ruleId": "GetObject", // The ID of the matching event notification rule.
"region": "", // The bucket's region.
"requestParameters": {
"sourceIPAddress": "" // The source IP address of the request.
},
"responseElements": {
"requestId": "" // The request ID.
},
"userIdentity": {
"principalId": "" // The UID of the user who made the request.
},
"xVars": { // Custom parameters in the OSS upload callback feature.
"x:callback-var1":"value1",
"x:callback-var2":"value2"
}
}
}
]
}
Exemplo de mensagem de notificação:
{"events": [
{
"eventName": "ObjectDownloaded:GetObject",
"eventSource": "acs:oss",
"eventTime": "2016-07-01T11:17:30.000Z",
"eventVersion": "1.0",
"oss": {
"bucket": {
"arn": "acs:oss:cn-shenzhen:114895646818****:event-notification-test-shenzhen",
"name": "event-notification-test-shenzhen",
"ownerIdentity": "114895646818****"},
"object": {
"deltaSize": 0,
"eTag": "0CC175B9C0F1B6468E1199E269772661",
"key": "test",
"readFrom": 0,
"readTo": 1,
"size": 1
},
"ossSchemaVersion": "1.0",
"ruleId": "GetObjectRule",
"region": "cn-shenzhen",
"requestParameters": {
"sourceIPAddress": "198.51.100.1"
},
"responseElements": {
"requestId": "5FF16B65F05BC932307A3C3C"
},
"userIdentity": {
"principalId": "114895646818****"
},
"xVars": {
"x:callback-var1":"value1",
"x:callback-var2":"value2"
}
}
}
]
}
Procedimento
Faça login no console do OSS.
No painel de navegação à esquerda, clique em Buckets. Na página exibida, clique no nome do bucket de destino.
No painel de navegação à esquerda, escolha Data Processing > Event Notification.
Na página Event Notification, clique em Create Rule.
-
No painel Create Rule, configure os seguintes parâmetros:
Parâmetro
Descrição
Rule Name
Especifique um nome para a regra de notificação de eventos.
O nome deve ser exclusivo por região e conta. Deve começar com uma letra, pode conter letras maiúsculas, minúsculas, dígitos e hifens (-), e ter no máximo 85 caracteres.
Event Type
Selecione um ou mais tipos de eventos. Por exemplo, selecione CopyObject para receber notificações quando um objeto for criado ou sobrescrito por uma operação de cópia.
Uma única regra pode incluir vários tipos de eventos. Ao configurar várias regras, observe o seguinte:
Regras que correspondem aos mesmos objetos não podem compartilhar tipos de eventos. Por exemplo, se a Regra A usar CopyObject para o prefixo
images, a Regra B para o mesmo prefixoimagesnão poderá incluir CopyObject.Regras que correspondem a objetos diferentes podem compartilhar tipos de eventos. Por exemplo, a Regra A usa PutObject para o prefixo
imagese sufixo.png, enquanto a Regra B usa PutObject ou DeleteObject para o prefixologe sufixo.jpg.
ImportanteEm um bucket com controle de versão ativado, os eventos DeleteObject ou DeleteObjects não são acionados se você omitir o ID da versão, porque a operação adiciona um marcador de exclusão em vez de remover permanentemente o objeto. A versão atual se torna uma versão anterior e um marcador de exclusão é adicionado.
{{XREF_16}}.
Object Matching
Especifique os objetos de destino para a notificação de eventos.
Correspondência de objetos por Full Name
Para corresponder a um objeto chamado
exampleobject.txtno diretório raiz do bucket, insira exampleobject.txt.Para corresponder a um objeto chamado
myphoto.jpgno diretóriodestdirdo bucket, insira destdir/myphoto.jpg.
Correspondência de objetos por Prefix/Suffix
Para corresponder a todos os objetos no bucket, deixe Prefix e Suffix vazios.
Para corresponder a todos os objetos no diretório
examplefolder, defina Prefix como examplefolder/ e deixe Suffix vazio.Para corresponder a todos os objetos com a extensão
.jpgno bucket, deixe Prefix vazio e defina Suffix como .jpg.Para corresponder a todos os objetos com a extensão
.mp3no diretório examplefolder, defina Prefix como examplefolder/ e Suffix como .mp3.
Clique em Add Condition e crie até cinco regras de correspondência de objetos.
Subscription Endpoint
Especifique o endpoint que recebe os eventos. Os tipos de assinatura suportados incluem HTTP e Queue.
-
Clique em OK.
A regra de notificação de eventos entra em vigor em cerca de 10 minutos.
Perguntas frequentes
Referências
Se você não conseguir receber um corpo de mensagem em um HttpEndpoint, pode ser porque você está usando o método POST. Para obter uma solução, consulte {{XREF_19}}
O OSS também fornece um recurso de {{XREF_20}} como alternativa para notificações de upload.