OSS では、イベント通知を設定して、リソースに関連する操作を適切なタイミングで確認できます。

イベント通知の作成時にイベント通知ルールをカスタマイズすると、 OSS 内の指定したオブジェクトに対する操作が適切なタイミングで通知されます。 例:

  • "新しいデータが、画像コンテンツ共有プラットフォーム、オーディオおよびビデオプラットフォームから OSS にアップロードされました。"
  • "OSS の関連コンテンツが更新されました。"
  • "OSS 上の重要なファイルが削除されます。"
  • "OSS 上のデータの同期が完了しました。"
重要 RTMP インジェストで ts および m3u8 ファイルが作成されても通知を送信されません。

OSS イベント通知は非同期であり、通常の OSS 操作には影響しません。 イベント通知を構成するには、ルールおよびメッセージ通知.

  • ルール:通知を送信する OSS リソースの使用条件を指定します。
  • メッセージ通知:Alibaba Cloud MNS により、複数の通知方法を提供します。

下図に、OSS リソースのイベント通知に関する全体的なアーキテクチャを示します。

実装モード

イベント通知の設定の詳細については、「イベント通知の設定」をご参照ください。

イベントタイプ

イベントタイプ 説明
ObjectCreated:PutObject オブジェクトの作成/上書き:簡単なアップロード。
ObjectCreated:PostObject オブジェクトの作成/上書き:フォームのアップロード。
ObjectCreated:CopyObject オブジェクトの作成/上書き:オブジェクトのコピー。
ObjectCreated:InitiateMultipartUpload オブジェクトの作成/上書き:マルチパートアップロードタスクが初期化されました。
ObjectCreated:UploadPart オブジェクトの作成/上書き:パーツがアップロードされました。
* oss:ObjectCreated:UploadPartCopy オブジェクトの作成/上書き:パーツは、既存のオブジェクトからデータをコピーすることによりアップロードされました。
ObjectCreated:CompleteMultipartUpload オブジェクトの作成/上書き:マルチパートアップロードタスクが完了しました。
ObjectCreated:AppendObject オブジェクトの作成/上書き:追加アップロード。
ObjectDownloaded:GetObject オブジェクトのダウンロード:単純なダウンロード。
ObjectRemoved:DeleteObject オブジェクトが削除されました。
ObjectRemoved:DeleteObjects 複数のオブジェクトが削除されました。
ObjectReplication:ObjectCreated オブジェクトの操作を同期しました:オブジェクトが作成されました。
ObjectReplication:ObjectRemoved オブジェクトの操作を同期しました:オブジェクトは削除されました。
ObjectReplication:ObjectModified オブジェクトの操作を同期しました:オブジェクトは上書きされました。

通知メッセージの形式

OSS ベースのイベント通知のメッセージコンテンツは、Base64 でエンコードされます。 デコードされたコンテンツは JSON 形式です。 例:
"events": {
    "eventName": "",  //The event type.
    "eventSource": "", //The resource on which operations were performed and triggered event notification. The value is acs:oss.
    "eventTime": "", //The time when the event was triggered. The returned data is in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format.
    "eventVersion": "", //The version number. The version number is 1.0.
    "oss": {
        "bucket": {
            "arn": "", //The ARN for the bucket. The format is "acs:oss:region:uid:bucket".
            "name": "", //The name of the bucket.
            "ownerIdentity": ""}, //The owner of the bucket.
        "object": {
            "deltaSize": , //The changed size of the object. If you create an object, this value is the size of the object. If you overwrite an existing object, this value is the difference between the new and existing objects, which may be a negative value.
            "eTag": "", //The ETag of the object. This value is the same as the ETag header value in the response to the GetObject() request.
            "key": "", //The name of the object.
            "position":, //Required only for the ObjectCreated:AppendObject event. This parameter indicates the position calculated based on the size of the object last uploaded. The value starts from 0.
            "readFrom": , //Required only for the ObjectDownloaded:GetObject event. This parameter indicates the beginning of the range of Bytes to read data from the object. The value starts from 0 for the range request. Otherwise, the value is 0.
            "readTo": , //Required only for the ObjectDownloaded:GetObject event. This parameter indicates the ending of the range of Bytes to read data from the object. The value increases by one for the ending Byte in the range request. Otherwise, the value is the actual size of the object.
            "size": }, //The size of the object.
        "ossSchemaVersion": "", //The version of the schema. The value is 1.0.
        "ruleId": "GetObject"}, //The rule ID that matches the event.
        "region": "", //The region in which the bucket is located.
        "requestParameters": {
            "sourceIPAddress": ""}, //The source IP address in the request.
        "responseElements": {
            "requestId": ""}, //The ID of the request.
        "userIdentity": {
            "principalId": ""}, //The user ID of the requester.
        "xVars": {  //The custom parameters in the callback of OSS.
            "x:callback-var1":"value1",
            "x:vallback-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:11489********46818:event-notification-test-shenzhen",
            "name": "event-notification-test-shenzhen",
            "ownerIdentity": "11489********46818"},
        "object": {
            "deltaSize": 0,
            "eTag": "0CC175B9C0F1B6xxxxxx99E269772661",
            "key": "test",
            "readFrom": 0,
            "readTo": 1,
            "size": 1},
        "ossSchemaVersion": "1.0",
        "ruleId": "GetObjectRule"},
        "region": "cn-shenzhen",
        "requestParameters": {
            "sourceIPAddress": "140.xx.xx.90"},
        "responseElements": {
            "requestId": "5776514Axxxxxxx542425D2B"},
        "userIdentity": {
            "principalId": "11489********46818"},
        "xVars": {
            "x:callback-var1":"value1",
            "x:vallback-var2":"value2"}}]}