A causa mais provável é o uso de caractere curinga no parâmetro Trigger Event (oss:ObjectCreated:*). O curinga corresponde a todos os eventos gerados durante uma única operação de upload, não apenas ao evento final de "objeto pronto". Assim, um único upload aciona sua função múltiplas vezes.
Substitua o curinga pelos tipos de evento específicos correspondentes ao seu método de upload.
Por que curingas causam acionamentos repetidos
O upload multipart gera vários eventos do OSS em sequência. Se o parâmetro Trigger Event estiver definido como oss:ObjectCreated:*, cada um desses eventos invocará a função.
Por exemplo, ao carregar um objeto de 12 MB pelo OSS Browser com tamanho de parte de 5 MB, o sistema gera os cinco eventos abaixo e aciona a função cinco vezes:
|
# |
Evento |
|
1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
|
Somente o evento 5 indica que o objeto está totalmente disponível. Os eventos de 1 a 4 ocorrem enquanto o upload ainda está em andamento.
Solução
Remova o curinga e configure tipos de evento específicos conforme seu método de upload:
|
Evento |
Método de upload |
Descrição |
|
|
Upload simples |
Cria ou substitui um objeto via upload simples |
|
|
Upload de formulário |
Cria ou substitui um objeto via upload de formulário |
|
|
Upload multipart |
Disparado quando todas as partes são reunidas e o objeto está completo |
Para uploads multipart, defina Trigger Event como oss:ObjectCreated:CompleteMultipartUpload para garantir que a função execute exatamente uma vez por upload concluído.
Em fluxos de trabalho que aceitam objetos de múltiplos métodos de upload, configure todos os três tipos de evento no gatilho. Consulte Eventos de gatilho do OSS para obter a lista completa de tipos de evento compatíveis.