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

Simple Message Queue (formerly MNS):OSS イベント通知

最終更新日:Mar 01, 2026

Object Storage Service (OSS) リソースに対して特定の操作が行われると、Simple Message Queue (SMQ、旧称 MNS) が通知をプッシュします。イベント通知ルールを設定すると、これらの通知をキューにルーティングし、ダウンストリームで処理できます。

仕組み

イベント通知ルールを作成すると、SMQ は指定された OSS リソースを監視し、一致するイベントが発生した際に、事前に設定した受信先(例:キュー)に通知をプッシュします。

image

OSS は、イベント通知ルールに一致するリクエストに対して、x-oss-process-status 応答ヘッダーを追加します。このヘッダーは、通知が正常に配信されたかどうかに関係なく付与されます。また、元のリクエストへの応答には影響しません。どのルールにも一致しないリクエストには、このヘッダーは含まれません。

ヘッダーの値は Base64 エンコードされています。デコード後の JSON ペイロードには、以下のフィールドが含まれます。

{
    "code": "Success",
    "message": "NotificationSucceed",
    "type": "EventNotification",
    "version": "1.0"
}

フィールド

説明

code

通知が生成されたかどうかを示します。Success は、OSS がメッセージを SMQ のトピックに送信したことを意味します。ただし、SMQ がそのメッセージをエンドポイントに配信したかどうかまでは保証しません。Fail は、通知が生成されなかったことを示します。

message

結果の説明です。失敗時には、このフィールドに原因が記載されます。

type

操作タイプです。イベント通知の場合、常に EventNotification になります。

version

プロトコルバージョンです。

メッセージ配信の詳細については、「キュー」をご参照ください。

利用シーン

  • 共有バケットでの操作を追跡 — バケット内のオブジェクトが、承認済みユーザーによってアップロード・削除・変更された際に通知を受け取ります。

  • アクセスパターンを分析 — 通知を集約して操作頻度を測定したり、トレンドを把握したり、E-MapReduce (EMR) などの分析サービスにデータを送信したりできます。

  • リクエストレートをモニター — OSS リソースに対する操作の QPS を追跡します。

注意事項

  • 新規のイベント通知ルールが有効になるまで、約 10 分かかります。

  • SMQ は、各イベント通知ルールに対して自動的にトピックを作成します。トピックには課金が発生する場合があります。詳細については、「課金概要」をご参照ください。

  • イベント通知ルールは作成または削除できますが、変更はできません。ルールを更新する場合は、既存のルールを削除してから新しいルールを作成してください。

サポートされるイベントタイプ

イベントはカテゴリごとにグループ化されています。ワイルドカードサフィックス :* を使用すると、そのカテゴリに属するすべてのイベント(今後追加されるイベントタイプも含む)に一致します。

オブジェクト作成イベント

イベントタイプ

トリガー

ObjectCreated:PutObject

PutObject によりオブジェクトがアップロードされます。

ObjectCreated:PostObject

PostObject により HTML フォーム経由でオブジェクトがアップロードされます。

ObjectCreated:CopyObject

CopyObject により、同一バケット内またはバケット間でオブジェクトがコピーされます。

ObjectCreated:AppendObject

AppendObject により、既存のオブジェクトにデータが追加されます。

ObjectCreated:InitiateMultipartUpload

InitiateMultipartUpload により、マルチパートアップロードタスクが開始されます。

ObjectCreated:UploadPart

UploadPart により、マルチパートアップロードの一部がアップロードされます。

ObjectCreated:UploadPartCopy

UploadPartCopy により、マルチパートアップロードの一部としてデータがコピーされます。

ObjectCreated:CompleteMultipartUpload

CompleteMultipartUpload により、マルチパートアップロードが完了します。

ObjectCreated:PutSymlink

PutSymlink により、宛先オブジェクトへのシンボリックリンクが作成されます。

ObjectCreated:*

ObjectCreated: で始まるすべてのオブジェクト作成イベント(今後追加されるイベントタイプも含む)に一致します。

オブジェクトダウンロードイベント

イベントタイプ

トリガー

ObjectDownloaded:GetObject

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

オブジェクト変更イベント

イベントタイプ

トリガー

ObjectModified:UpdateObjectMeta

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

ObjectModified:ChangeStorageClass

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

ObjectModified:*

ObjectModified: で始まるすべてのオブジェクト変更イベント(今後追加されるイベントタイプも含む)に一致します。

オブジェクト削除イベント

イベントタイプ

トリガー

ObjectRemoved:DeleteObject

DeleteObject によりオブジェクトが削除されます。

ObjectRemoved:DeleteObjects

DeleteMultipleObjects により、1 回のリクエストで複数のオブジェクトが削除されます。

ObjectRemoved:AbortMultipartUpload

AbortMultipartUpload により、マルチパートアップロードがキャンセルされ、アップロード済みのパーツが削除されます。

ObjectRemoved:*

ObjectRemoved: で始まるすべてのオブジェクト削除イベント(今後追加されるイベントタイプも含む)に一致します。

データレプリケーションイベント

イベントタイプ

トリガー

ObjectReplication:ObjectCreated

データレプリケーションタスク中にオブジェクトが作成されます。

ObjectReplication:ObjectRemoved

データレプリケーションタスク中にオブジェクトが削除されます。

ObjectReplication:ObjectModified

データレプリケーションタスク中にオブジェクトが上書きされます。

ObjectReplication:*

ObjectReplication: で始まるすべてのデータレプリケーションイベント(今後追加されるイベントタイプも含む)に一致します。

オブジェクト復元イベント

イベントタイプ

トリガー

ObjectRestore:FinishRestore

コールドアーカイブまたはディープコールドアーカイブオブジェクトの復元が完了します。このイベントタイプは、コールドアーカイブおよびディープコールドアーカイブオブジェクトにのみ適用されます。

イベント通知メッセージフォーマット

メッセージの内容は Base64 エンコードされています。デコード後のペイロードは、以下の構造を持つ JSON オブジェクトです。

{
    "events": [
        {
            "eventName": "ObjectDownloaded:GetObject",
            "eventSource": "acs:oss",
            "eventTime": "2016-07-01T11:17:30.000Z",
            "eventVersion": "1.0",
            "oss": {
                "bucket": {
                    "arn": "acs:oss:cn-shenzhen:123456789098****:event-notification-test-shenzhen",
                    "name": "event-notification-test-shenzhen",
                    "ownerIdentity": "123456789098****"
                },
                "object": {
                    "deltaSize": 0,
                    "eTag": "0CC175B9C0F1B6A831C399E26977****",
                    "key": "test",
                    "readFrom": 0,
                    "readTo": 1,
                    "size": 1
                },
                "ossSchemaVersion": "1.0",
                "ruleId": "GetObjectRule"
            },
            "region": "cn-shenzhen",
            "requestParameters": {
                "sourceIPAddress": "140.205.XX.XX"
            },
            "responseElements": {
                "requestId": "5776514AF09A9E654242****"
            },
            "userIdentity": {
                "principalId": "123456789098****"
            },
            "xVars": {
                "x:callback-var1": "value1",
                "x:vallback-var2": "value2"
            }
        }
    ]
}

メッセージフィールド

フィールド

説明

eventName

通知をトリガーしたイベントタイプです。

eventSource

イベントソースです。値は acs:oss です。

eventTime

イベントが発生した時刻(ISO 8601 形式)です。

eventVersion

イベントプロトコルのバージョンです。

oss

OSS イベントの詳細です。

oss.bucket.arn

バケットの Alibaba Cloud リソースネーム (ARN) です。

oss.bucket.name

バケット名です。

oss.bucket.ownerIdentity

バケットを作成したユーザーの ID です。

oss.object.deltaSize

オブジェクトのサイズ変化(バイト単位)です。

oss.object.eTag

オブジェクトの ETag です。PutObject でアップロードされたオブジェクトの場合、これはコンテンツの MD5 ハッシュです。他の方法で作成されたオブジェクトの場合、内部アルゴリズムにより生成された一意の値です。ETag を比較することで、オブジェクトのコンテンツが変更されたかどうかを確認できます。

oss.object.key

オブジェクト名です。

oss.object.readFrom

オブジェクト読み取りの開始バイト位置です。

oss.object.readTo

オブジェクト読み取りの終了バイト位置です。

oss.object.size

オブジェクトのサイズ(バイト単位)です。

oss.ossSchemaVersion

OSS スキーマのバージョンです。

oss.ruleId

このイベントに一致したイベント通知ルールの ID です。

region

バケットが存在するリージョンです。

requestParameters.sourceIPAddress

リクエストの送信元 IP アドレスです。

responseElements.requestId

リクエスト ID です。

userIdentity.principalId

リクエスト元のユニーク ID (UID) です。

xVars

OSS コールバック構成で定義されたカスタムパラメーターです。

前提条件

作業を開始する前に、以下の準備が整っていることを確認してください。

  • SMQ および OSS が有効化された Alibaba Cloud アカウント

  • (任意)通知を受信するためのキュー。まだない場合は、ステップ 1 で作成します。

  • (任意)キューと同じリージョンにある OSS バケット。まだない場合は、ステップ 2 で作成します。

操作手順

ステップ 1:(任意)キューの作成

すでにイベント通知を受信するキューがある場合は、このステップをスキップしてください。イベント通知ルール作成後にサブスクリプションを作成することも可能です。

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

  2. 左側のナビゲーションウィンドウで、キュー モデル > キュー を選択します。

  3. 上部のナビゲーションバーで、リージョンを選択します。

  4. キュー ページで、キューの作成 をクリックします。

  5. キューの作成 パネルで、以下のパラメーターを設定し、OK をクリックします。新しいキューが キュー ページに表示されます。

    パラメーター

    説明

    名前

    キュー名です。

    最大メッセージ長

    キューに送信される単一メッセージの最大サイズです。

    ロングポーリング期間

    ReceiveMessage 操作呼び出し後、ロングポーリングリクエストが保持される最大時間です。

    可視性タイムアウト期間

    キューからメッセージを受信した後、そのメッセージが非アクティブ状態で維持される時間です。

    メッセージ保持期間

    キュー内でメッセージが保持される最大時間です。この期間を過ぎると、受信の有無にかかわらずメッセージは削除されます。

    メッセージ遅延期間

    キューに送信されたすべてのメッセージが消費されるまでの期間。

    ログ機能を有効化

    メッセージ操作ログを有効にするかどうかを指定します。

ステップ 2:(任意)バケットの作成

すでにキューと同じリージョンにバケットがある場合は、このステップをスキップしてください。

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

  2. 左側のナビゲーションウィンドウで、バケット をクリックします。

  3. バケット ページで、バケットの作成 をクリックします。

  4. バケットの作成 パネルで、以下のパラメーターを設定し、作成 をクリックします。

    その他のパラメーターはすべてデフォルト値を使用します。デフォルトでは、パブリックアクセスブロックが有効化され、ACL はプライベートに設定されます。これらの設定は、イベント通知のテストに十分です。

    パラメーター

    説明

    バケット名

    バケットの名前です。例:event-notification-test

    リージョン

    キューと同じリージョンである必要があります。

ステップ 3:イベント通知ルールの作成

イベント通知ルールを作成すると、SMQ は自動的にトピックとサブスクリプションを作成し、トピックからのメッセージを指定された受信先にルーティングします。

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

  2. 左側のナビゲーションウィンドウで、イベント通知 をクリックします。

  3. 上部のナビゲーションバーで、リージョンを選択します。

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

  5. ルールの作成 - OSS パネルで、以下のパラメーターを設定し、OK をクリックします。

    パラメーター

    説明

    名前

    ルールの名前です。

    イベントタイプ

    監視対象のイベントタイプを 1 つ以上選択します。「サポートされるイベントタイプ」をご参照ください。

    マッチモード

    OSS リソース名のフィルタリングパターンです。「マッチモードの詳細」をご参照ください。

    受信端末

    キュー を選択し、ステップ 1 で作成したキューの名前を入力します。

マッチモードの詳細

OSS リソース名は、バケット名とオブジェクト名をスラッシュ (/) で結合した形式です。例:movie/hello.avi

4 種類のマッチモードが利用可能です。2 つのマッチモードが重複することはありません。

マッチモード

マッチ対象

氏名

movie/hello.avi

movie/hello.avi というリソースに完全一致するもののみ。

プレフィックス

movie/hello

movie バケット内で、hello で始まるすべてのオブジェクト。

プレフィックス

movie/

movie バケット内のすべてのオブジェクト。

プレフィックス

mov

名前が mov で始まるバケット内のすべてのオブジェクト。

サフィックス

avi

すべてのバケットにおいて、.avi で終わるすべてのオブジェクト。

プレフィックス & サフィックス

プレフィックス:movie/、サフィックス:.avi

movie バケット内の、.avi 拡張子を持つすべてのオブジェクト。

ステップ 4:ルールの検証のためオブジェクトをアップロード

新規ルールが有効になるまで約 10 分かかるため、ルール作成後、少なくとも 10 分待ってからアップロードを行ってください。
  1. OSS コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、バケット をクリックします。

  3. 対象のバケット名をクリックして、オブジェクト ページを開きます。

  4. オブジェクトリストの上部にある オブジェクトのアップロード をクリックします。

  5. アップロードパラメーターを設定し、オブジェクトのアップロード をクリックします。詳細については、「シンプルアップロード」セクションをご参照ください。タスクリスト パネルに、アップロードステータスが アップロード済み と表示されます。

ステップ 5:イベント通知の受信

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

  2. 左側のナビゲーションウィンドウで、キュー モデル > キュー を選択します。

  3. 上部のナビゲーションバーで、キューと同じリージョンを選択します。

  4. キュー ページで、対象のキューを見つけ、操作 列の メッセージの送信 をクリックします。

  5. クイック体験 ページの メッセージの受信 セクションで、メッセージの受信 をクリックします。受信済みメッセージの一覧が表示されます。

  6. 対象のメッセージを見つけ、操作 列の 詳細 をクリックします。メッセージの詳細 ダイアログボックスに、イベント通知の内容が表示されます。