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

Object Storage Service:イベント通知を使用してリアルタイムでオブジェクトの変更を処理する

最終更新日:Sep 21, 2026

OSS のイベント通知ルールを設定することで、オブジェクトの変更をリアルタイムで処理、同期、監視したり、ビジネスワークフローをトリガーしたり、ログを記録したりできます。監視対象のオブジェクトを指定し、通知を HTTP エンドポイントまたは SMQ キューにルーティングします。

前提条件

Simple Message Queue (SMQ) が有効になっている必要があります。SMQ は、SMQ 製品ページで有効にできます。

注意事項

  • OSS の操作がイベント通知ルールをトリガーすると、OSS は SMQ を呼び出して通知を送信しますが、この呼び出しは失敗する可能性があります。配信を検証するには、Base64 でエンコードされた x-oss-event-status レスポンスヘッダーを確認してください。デコードされた値が {"Result": "Ok"} の場合は、成功を示します。

  • イベント通知には SMQ の料金が発生します。課金をご参照ください。

  • イベント通知は特定のリージョンでのみ利用可能です。

  • リージョンごとに最大 10 個のイベント通知ルールを設定できます。この上限を引き上げるには、テクニカルサポートにお問い合わせください。

  • Real-Time Messaging Protocol (RTMP) ストリームから生成された TS および M3U8 オブジェクトでは、イベント通知ルールはトリガーされません。LiveChannel 関連の操作をご参照ください。

仕組み

バケットでの操作がイベント通知ルールをトリガーすると、SMQ は指定された HTTP エンドポイントまたはキューに通知を送信します。

image

イベントタイプ

グループ

タイプ

説明

ObjectCreated (オブジェクトの作成)

ObjectCreated:PutObject

オブジェクトをアップロードします。 PutObject。

ObjectCreated:PostObject

フォームベースの POST を介してオブジェクトをアップロードします。 PostObject。

ObjectCreated:CopyObject

オブジェクトをコピーします。 CopyObject。

ObjectCreated:AppendObject

追記によってオブジェクトをアップロードします。 AppendObject。

ObjectCreated:InitiateMultipartUpload

マルチパートアップロードを開始します。 InitiateMultipartUpload。

ObjectCreated:UploadPart

マルチパートアップロードでパートをアップロードします。 UploadPart。

ObjectCreated:UploadPartCopy

マルチパートアップロードでパートをコピーします。 UploadPartCopy。

ObjectCreated:CompleteMultipartUpload

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

ObjectCreated:PutSymlink

オブジェクトのシンボリックリンクを作成します。 PutSymlink。

ObjectCreated:Mirror

OSS ミラーリングによってオブジェクトが作成されます。

説明

デフォルトでは、OSS ミラーリングは ObjectCreated:PutObject をトリガーします。代わりに ObjectCreated:Mirror を使用するには、チケットを送信してください。

ObjectCreated:*

ObjectCreated: で始まるすべてのイベント。

説明

このワイルドカードは、ObjectCreated に属する現在および将来のすべてのイベントタイプをカバーします。

ObjectDownloaded (オブジェクトのダウンロード)

ObjectDownloaded:GetObject

オブジェクトがダウンロードされます。

ObjectModified (オブジェクトの変更)

ObjectModified:UpdateObjectMeta

UpdateObjectMeta によってオブジェクトのメタデータが変更されます。

ObjectModified:ChangeStorageClass

ライフサイクルルールによってオブジェクトのストレージクラスが変更されます。

ObjectModified:*

ObjectModified: で始まるすべてのイベント。

説明

このワイルドカードは、ObjectModified に属する現在および将来のすべてのイベントタイプをカバーします。

ObjectRemoved (オブジェクトの削除)

ObjectRemoved:DeleteObject

単一のオブジェクトを削除します。 DeleteObject。

ObjectRemoved:DeleteObjects

複数のオブジェクトを削除します。 DeleteMultipleObjects。

ObjectRemoved:AbortMultipartUpload

マルチパートアップロードを中止し、そのパートを削除します。 AbortMultipartUpload。

ObjectRemoved:*

ObjectRemoved: で始まるすべてのイベント。

説明

このワイルドカードは、ObjectRemoved に属する現在および将来のすべてのイベントタイプをカバーします。

ObjectReplication (オブジェクトのレプリケーション)

ObjectReplication:ObjectCreated

データレプリケーションの一環として書き込み操作が発生します。

ObjectReplication:ObjectRemoved

データレプリケーションの一環として削除操作が発生します。

ObjectReplication:ObjectModified

データレプリケーションの一環として上書き操作が発生します。

ObjectReplication:*

ObjectReplication: で始まるすべてのイベント。

説明

このワイルドカードは、ObjectReplication に属する現在および将来のすべてのイベントタイプをカバーします。

ObjectRestore (オブジェクトの復元)

ObjectRestore:FinishRestore

オブジェクトがアーカイブストレージから復元されます。Cold Archive および Deep Cold Archive オブジェクトにのみ適用されます。

通知メッセージ

各イベント通知には、以下の構造の Base64 エンコードされた JSON ペイロードが含まれます。

{
    "events": [
      {
        "eventName": "",  // イベント通知のタイプ
        "eventSource": "", // イベント通知のソース。この値は「acs:oss」に固定されています
        "eventTime": "", // イベントが発生した時刻 (ISO 8601 形式)
        "eventVersion": "", // イベント通知のバージョン。現在のバージョンは「1.0」です
        "oss": {
            "bucket": {
                "arn": "", // バケットの Alibaba Cloud リソースネーム (ARN)。形式は「acs:oss:region:uid:bucketname」です
                "name": "", // イベントが発生したバケットの名前
                "ownerIdentity": "" // バケットの所有者
            }, 
            "object": {
                "deltaSize": "", // オブジェクトサイズの変更量。たとえば、新しいオブジェクトが作成された場合、この値はオブジェクトサイズです。オブジェクトが上書きされた場合、この値は新しいオブジェクトと古いオブジェクトのサイズ差であり、負の値になる可能性があります
                "eTag": "", // オブジェクトの ETag
                "key": "", // オブジェクトキー
                "position": "", // 追加操作の開始位置。このパラメータは ObjectCreated:AppendObject イベントにのみ適用されます。オブジェクトに対する最初の AppendObject リクエストはバイト 0 から開始されます
                "readFrom": "", // 読み取り操作の開始位置。このパラメータは ObjectDownloaded:GetObject イベントにのみ適用されます。範囲指定のないリクエストの場合、この値は 0 です。範囲リクエストの場合、この値はリクエストの開始バイトです
                "readTo": "", // 読み取り操作の終了位置。このパラメータは ObjectDownloaded:GetObject イベントにのみ適用されます。範囲指定のないリクエストの場合、この値はオブジェクトサイズです。範囲リクエストの場合、この値は範囲リクエストの終了バイトに 1 を加えた値です
                "size": "" // オブジェクトのサイズ
                }, 
        "ossSchemaVersion": "", // このスキーマのバージョン。現在のバージョンは「1.0」です
        "ruleId": "GetObjectRule", // 一致したイベント通知ルールの ID
        "region": "", // バケットのリージョン
        "requestParameters": {
            "sourceIPAddress": "" // リクエストのソース IP アドレス
            }, 
        "responseElements": {
            "requestId": "" // リクエスト ID
            }, 
        "userIdentity": {
            "principalId": "" // リクエストを行ったプリンシパルの ID
            }, 
        "xVars": {  // OSS アップロードコールバック機能のカスタムパラメータ
            "x:callback-var1":"value1",
            "x:callback-var2":"value2"
            }
        }        
     }
  ]
}

通知メッセージの例:

{"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"
            }
        }        
     }
  ]
}

操作手順

  1. OSSコンソールにログインします。

  2. 左側のナビゲーションウィンドウで、バケット をクリックします。 [バケット] ページで、目的のバケットを見つけてクリックします。

  3. 左側のナビゲーションペインで、データ処理 > イベント通知 を選択します。

  4. イベント通知 ページで、ルールの作成 をクリックします。

  5. ルールの作成 パネルで、以下のパラメーターを設定します:

    パラメータ

    説明

    [スタイル名]

    イベント通知ルールの名前を指定します。

    名前は、リージョンとアカウントごとに一意である必要があります。名前は文字で始まり、大文字、小文字、数字、ハイフン (-) を含めることができ、最大 85 文字です。

    [イベントタイプ]

    1 つ以上のイベントタイプを選択します。たとえば、コピー操作によってオブジェクトが作成または上書きされたときに通知を受け取るには、CopyObject を選択します。

    1 つのルールに複数のイベントタイプを含めることができます。複数のルールを設定する場合は、以下の点に注意してください。

    • 同じオブジェクトに一致するルールは、イベントタイプを共有できません。たとえば、ルール A がプレフィックス images に対して CopyObject を使用する場合、同じプレフィックス images のルール B は CopyObject を含めることはできません。

    • 異なるオブジェクトに一致するルールで、イベントタイプを共有できます。たとえば、ルール A はプレフィックス images とサフィックス .png に PutObject を使用し、ルール B はプレフィックス log とサフィックス .jpg に PutObject または DeleteObject を使用します。

    重要

    バージョニングが有効なバケットでは、バージョン ID を省略した場合、DeleteObject または DeleteObjects イベントはトリガーされません。これは、操作がオブジェクトを完全に削除するのではなく、削除マーカーを追加するためです。現在のバージョンは旧バージョンになり、削除マーカーが追加されます。

    イベントタイプをご参照ください。

    オブジェクトマッチング

    イベント通知の対象オブジェクトを指定します。

    • オブジェクトを フルネーム で照合

      • バケットのルートディレクトリにあるオブジェクト exampleobject.txt に一致させるには、exampleobject.txt と入力します。

      • バケットの destdir ディレクトリにある myphoto.jpg という名前のオブジェクトと照合するには、destdir/myphoto.jpg と入力します。

    • オブジェクトの照合条件 プレフィックス / サフィックス

      • バケット内のすべてのオブジェクトを一致させるには、プレフィックスとサフィックスの両方を空のままにします。

      • examplefolder ディレクトリ内のすべてのオブジェクトに一致させるには、プレフィックスに examplefolder/ を設定し、サフィックスは空のままにします。

      • バケット内の .jpg 拡張子を持つすべてのオブジェクトを照合するには、Prefix を空のままにし、Suffix を .jpg に設定します。

      • examplefolder ディレクトリ内の拡張子が .mp3 のすべてのオブジェクトに一致させるには、プレフィックスに examplefolder/、サフィックスに .mp3 を設定します。

    条件を追加 をクリックして、最大 5 つのオブジェクトマッチングルールを作成できます。

    サブスクリプションエンドポイント

    イベントを受信するエンドポイントを指定します。サポートされるサブスクリプションタイプには、HTTP と キュー があります。

  6. OK をクリックします。

    イベント通知ルールは、約 10 分で有効になります。

よくある質問

オブジェクトを削除してもイベント通知がトリガーされないのはなぜですか?

関連ドキュメント