PUT バケットメタデータ通知設定
PUT バケット メタデータ通知構成リクエストを使用すると、個々のバケットの検索統合サービスを有効にすることができます。リクエスト本文に指定するメタデータ通知構成 XML は、メタデータが宛先検索インデックスに送信されるオブジェクトを指定します。
この操作を完了するには、バケットに対する s3:PutBucketMetadataNotification 権限を持っているか、アカウント ルートである必要があります。
要求
リクエストには、リクエスト本文にメタデータ通知構成が含まれている必要があります。各メタデータ通知構成には、1 つ以上のルールが含まれます。各ルールは、適用されるオブジェクトと、 StorageGRIDがオブジェクト メタデータを送信する宛先を指定します。
オブジェクトは、オブジェクト名のプレフィックスでフィルタリングできます。たとえば、プレフィックスを持つオブジェクトのメタデータを送信できます。 /images 1つの宛先に、接頭辞を持つオブジェクト `/videos`別の人に。
プレフィックスが重複する構成は無効であり、送信時に拒否されます。たとえば、接頭辞を持つオブジェクトに対する1つのルールを含む構成では、 `test`接頭辞を持つオブジェクトに対する2番目のルール `test2`許可されません。
宛先は、 StorageGRIDエンドポイントの URN を使用して指定する必要があります。メタデータ通知設定が送信されるときにエンドポイントが存在している必要があります。存在しない場合、リクエストは失敗します。 400 Bad Request`エラーメッセージは次のようになります。 `Unable to save the metadata notification (search) policy. The specified endpoint URN does not exist: URN.
<MetadataNotificationConfiguration>
<Rule>
<ID>Rule-1</ID>
<Status>rule-status</Status>
<Prefix>key-prefix</Prefix>
<Destination>
<Urn>arn:aws:es:region:account-ID:domain/mydomain/myindex/mytype</Urn>
</Destination>
</Rule>
<Rule>
<ID>Rule-2</ID>
...
</Rule>
...
</MetadataNotificationConfiguration>
この表では、メタデータ通知構成 XML の要素について説明します。
| Name | 説明 | 必須 |
|---|---|---|
メタデータ通知構成 |
メタデータ通知のオブジェクトと宛先を指定するために使用されるルールのコンテナ タグ。 1 つ以上の Rule 要素が含まれます。 |
はい |
Rule |
指定されたインデックスにメタデータを追加するオブジェクトを識別するルールのコンテナ タグ。 プレフィックスが重複するルールは拒否されます。 MetadataNotificationConfiguration 要素に含まれます。 |
はい |
ID |
ルールの一意の識別子。 ルール要素に含まれます。 |
いいえ |
ステータス |
ステータスは「有効」または「無効」になります。無効にされているルールに対してはアクションは実行されません。 ルール要素に含まれます。 |
はい |
接頭辞 |
プレフィックスに一致するオブジェクトはルールの影響を受け、そのメタデータは指定された宛先に送信されます。 すべてのオブジェクトを一致させるには、空のプレフィックスを指定します。 ルール要素に含まれます。 |
はい |
デスティネーション |
ルールの宛先のコンテナ タグ。 ルール要素に含まれます。 |
はい |
壷 |
オブジェクト メタデータが送信される宛先の URN。次のプロパティを持つStorageGRIDエンドポイントの URN である必要があります。
エンドポイントは、テナント マネージャーまたはテナント管理 API を使用して構成されます。それらは次の形式をとります:
構成 XML を送信する前にエンドポイントを構成する必要があります。そうしないと、404 エラーが発生して構成が失敗します。 Urn は Destination 要素に含まれます。 |
はい |
リクエスト例
この例では、バケットの検索統合を有効にする方法を示します。この例では、すべてのオブジェクトのオブジェクト メタデータが同じ宛先に送信されます。
PUT /test1?x-ntap-sg-metadata-notification HTTP/1.1
Date: date
Authorization: authorization string
Host: host
<MetadataNotificationConfiguration>
<Rule>
<ID>Rule-1</ID>
<Status>Enabled</Status>
<Prefix></Prefix>
<Destination>
<Urn>urn:sgws:es:::sgws-notifications/test1/all</Urn>
</Destination>
</Rule>
</MetadataNotificationConfiguration>
この例では、プレフィックスに一致するオブジェクトのオブジェクトメタデータ `/images`一つの宛先に送信される一方、プレフィックスに一致するオブジェクトのオブジェクトメタデータは `/videos`2 番目の宛先に送信されます。
PUT /graphics?x-ntap-sg-metadata-notification HTTP/1.1
Date: date
Authorization: authorization string
Host: host
<MetadataNotificationConfiguration>
<Rule>
<ID>Images-rule</ID>
<Status>Enabled</Status>
<Prefix>/images</Prefix>
<Destination>
<Urn>arn:aws:es:us-east-1:3333333:domain/es-domain/graphics/imagetype</Urn>
</Destination>
</Rule>
<Rule>
<ID>Videos-rule</ID>
<Status>Enabled</Status>
<Prefix>/videos</Prefix>
<Destination>
<Urn>arn:aws:es:us-west-1:22222222:domain/es-domain/graphics/videotype</Urn>
</Destination>
</Rule>
</MetadataNotificationConfiguration>
検索統合サービスによって生成されたJSON
バケットの検索統合サービスを有効にすると、オブジェクトのメタデータまたはタグが追加、更新、または削除されるたびに、JSON ドキュメントが生成され、宛先エンドポイントに送信されます。
この例では、キーを持つオブジェクトが生成された場合に生成されるJSONの例を示します。 SGWS/Tagging.txt`バケットに作成されます `test。その `test`バケットはバージョン管理されていないため、 `versionId`タグが空です。
{
"bucket": "test",
"key": "SGWS/Tagging.txt",
"versionId": "",
"accountId": "86928401983529626822",
"size": 38,
"md5": "3d6c7634a85436eee06d43415012855",
"region":"us-east-1",
"metadata": {
"age": "25"
},
"tags": {
"color": "yellow"
}
}
メタデータ通知に含まれるオブジェクトメタデータ
この表には、検索統合が有効になっているときに宛先エンドポイントに送信される JSON ドキュメントに含まれるすべてのフィールドがリストされています。
ドキュメント名には、バケット名、オブジェクト名、バージョン ID (存在する場合) が含まれます。
| タイプ | アイテム名 | 説明 |
|---|---|---|
バケットとオブジェクトの情報 |
バケット |
バケットの名前 |
バケットとオブジェクトの情報 |
キー |
オブジェクトキー名 |
バケットとオブジェクトの情報 |
バージョンID |
オブジェクト バージョン(バージョン管理されたバケット内のオブジェクトの場合) |
バケットとオブジェクトの情報 |
地域 |
バケット領域の例 |
システムメタデータ |
サイズ |
HTTPクライアントに表示されるオブジェクトサイズ(バイト単位) |
システムメタデータ |
md5 |
オブジェクトハッシュ |
ユーザーメタデータ |
メタデータ
|
オブジェクトのすべてのユーザーメタデータ(キーと値のペア) |
タグ |
タグ
|
オブジェクトに定義されたすべてのオブジェクトタグ(キーと値のペア) |
|
|
タグとユーザー メタデータの場合、 StorageGRID は日付と数値を文字列または S3 イベント通知として Elasticsearch に渡します。これらの文字列を日付または数値として解釈するように Elasticsearch を構成するには、動的フィールド マッピングと日付形式のマッピングに関する Elasticsearch の指示に従います。検索統合サービスを構成する前に、インデックスで動的フィールド マッピングを有効にする必要があります。ドキュメントのインデックスが作成された後は、インデックス内のドキュメントのフィールド タイプを編集することはできません。 |