すべてのプロダクト
Search
ドキュメントセンター

Function Compute:オブジェクトがOSSにアップロードされたときに関数が複数回トリガーされた場合はどうすればよいですか?

最終更新日:Sep 11, 2024

オブジェクトをOSSにアップロードするときにObject Storage Service (OSS) トリガーが複数回トリガーされた場合、trigger Eventパラメーターが正しく設定されているかどうかを確認する必要があります。

発生原因

OSSトリガーの繰り返しトリガーの考えられる原因は、ファイルアップロード中に複数の指定されたトリガーイベントがトリガーされることです。

たとえば、マルチパートアップロード機能を使用してオブジェクトをOSSにアップロードすると、oss:ObjectCreated:InitiateMultipartUploadoss:ObjectCreated:UploadPart、およびoss:ObjectCreated:CompleteMultipartUploadイベントが順番にトリガーされます。 OSSトリガーのトリガーイベントoss:ObjectCreated:* に設定した場合、OSSブラウザーを使用して12 MBのオブジェクトをアップロードし、パーツサイズを5 MBに設定すると、関数は5回トリガーされます。 次の項目は、トリガーイベントの一覧です。

  • oss:ObjectCreated:InitiateMultipartUpload

  • oss:ObjectCreated:UploadPart

  • oss:ObjectCreated:UploadPart

  • oss:ObjectCreated:UploadPart

  • oss:ObjectCreated:CompleteMultipartUpload

したがって、トリガーが1回だけトリガーされるように、マルチパートアップロードの場合、トリガーイベントoss:ObjectCreated:CompleteMultipartUploadに設定する必要があります。

ソリューション

トリガーのトリガーイベントパラメーターをoss:ObjectCreated:PutObjectoss:ObjectCreated:PostObject、またはoss:ObjectCreated:CompleteMultipartUploadに設定できます。 これらのイベントの詳細は次の項目に記載されています。

  • oss:ObjectCreated:PutObject: 単純なアップロードを使用してオブジェクトを作成または上書きします。

  • oss:ObjectCreated:PostObject: フォームのアップロードを使用してオブジェクトを作成または上書きします。

  • oss:ObjectCreated:CompleteMultipartUpload: マルチパートアップロードを完了します。