Configurazione della notifica dei metadati del bucket PUT
La richiesta di configurazione della notifica dei metadati del bucket PUT consente di abilitare il servizio di integrazione della ricerca per singoli bucket. Il codice XML di configurazione della notifica dei metadati fornito nel corpo della richiesta specifica gli oggetti i cui metadati vengono inviati all'indice di ricerca di destinazione.
Per completare questa operazione è necessario disporre dell'autorizzazione s3:PutBucketMetadataNotification per un bucket oppure essere l'account root.
Richiesta
La richiesta deve includere la configurazione della notifica dei metadati nel corpo della richiesta. Ogni configurazione di notifica dei metadati include una o più regole. Ogni regola specifica gli oggetti a cui si applica e la destinazione a cui StorageGRID deve inviare i metadati degli oggetti.
Gli oggetti possono essere filtrati in base al prefisso del nome dell'oggetto. Ad esempio, potresti inviare metadati per oggetti con il prefisso /images
verso una destinazione e oggetti con il prefisso /videos
all'altro.
Le configurazioni con prefissi sovrapposti non sono valide e vengono rifiutate al momento dell'invio. Ad esempio, una configurazione che includeva una regola per gli oggetti con il prefisso test
e una seconda regola per gli oggetti con il prefisso test2
non sarebbe consentito.
Le destinazioni devono essere specificate utilizzando l'URN di un endpoint StorageGRID . L'endpoint deve esistere quando viene inviata la configurazione della notifica dei metadati, altrimenti la richiesta fallisce come 400 Bad Request
Il messaggio di errore afferma: 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>
La tabella descrive gli elementi presenti nel file XML di configurazione delle notifiche dei metadati.
Nome | Descrizione | Necessario |
---|---|---|
MetadatiNotificaConfigurazione |
Tag contenitore per le regole utilizzate per specificare gli oggetti e la destinazione delle notifiche dei metadati. Contiene uno o più elementi Rule. |
SÌ |
Regola |
Tag contenitore per una regola che identifica gli oggetti i cui metadati devono essere aggiunti a un indice specificato. Le regole con prefissi sovrapposti vengono rifiutate. Incluso nell'elemento MetadataNotificationConfiguration. |
SÌ |
ID |
Identificatore univoco per la regola. Incluso nell'elemento Regola. |
NO |
Stato |
Lo stato può essere "Abilitato" o "Disabilitato". Non viene intrapresa alcuna azione per le regole disabilitate. Incluso nell'elemento Regola. |
SÌ |
Prefisso |
Gli oggetti che corrispondono al prefisso sono interessati dalla regola e i loro metadati vengono inviati alla destinazione specificata. Per trovare la corrispondenza con tutti gli oggetti, specificare un prefisso vuoto. Incluso nell'elemento Regola. |
SÌ |
Destinazione |
Tag contenitore per la destinazione di una regola. Incluso nell'elemento Regola. |
SÌ |
Urna |
URN della destinazione a cui vengono inviati i metadati dell'oggetto. Deve essere l'URN di un endpoint StorageGRID con le seguenti proprietà:
Gli endpoint vengono configurati tramite Tenant Manager o Tenant Management API. Hanno la seguente forma:
L'endpoint deve essere configurato prima di inviare il file XML di configurazione, altrimenti la configurazione fallirà con un errore 404. L'urna è inclusa nell'elemento Destinazione. |
SÌ |
Esempi di richiesta
Questo esempio mostra come abilitare l'integrazione della ricerca per un bucket. In questo esempio, i metadati di tutti gli oggetti vengono inviati alla stessa destinazione.
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>
In questo esempio, metadati degli oggetti per gli oggetti che corrispondono al prefisso /images
viene inviato a una destinazione, mentre i metadati degli oggetti corrispondono al prefisso /videos
viene inviato a una seconda destinazione.
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 generato dal servizio di integrazione della ricerca
Quando si abilita il servizio di integrazione della ricerca per un bucket, ogni volta che vengono aggiunti, aggiornati o eliminati metadati o tag di un oggetto, viene generato un documento JSON che viene inviato all'endpoint di destinazione.
Questo esempio mostra un esempio del JSON che potrebbe essere generato quando un oggetto con la chiave SGWS/Tagging.txt
viene creato in un bucket denominato test
. IL test
il bucket non è sottoposto a versioning, quindi versionId
il tag è vuoto.
{ "bucket": "test", "key": "SGWS/Tagging.txt", "versionId": "", "accountId": "86928401983529626822", "size": 38, "md5": "3d6c7634a85436eee06d43415012855", "region":"us-east-1", "metadata": { "age": "25" }, "tags": { "color": "yellow" } }
Metadati degli oggetti inclusi nelle notifiche dei metadati
Nella tabella sono elencati tutti i campi inclusi nel documento JSON inviato all'endpoint di destinazione quando è abilitata l'integrazione della ricerca.
Il nome del documento include il nome del bucket, il nome dell'oggetto e l'ID della versione, se presente.
Tipo | Nome dell'articolo | Descrizione |
---|---|---|
Informazioni su bucket e oggetti |
secchio |
Nome del bucket |
Informazioni su bucket e oggetti |
chiave |
Nome chiave oggetto |
Informazioni su bucket e oggetti |
ID versione |
Versione dell'oggetto, per gli oggetti nei bucket con versione |
Informazioni su bucket e oggetti |
regione |
Regione del bucket, ad esempio |
Metadati di sistema |
misurare |
Dimensione dell'oggetto (in byte) visibile a un client HTTP |
Metadati di sistema |
md5 |
Hash dell'oggetto |
Metadati utente |
metadati
|
Tutti i metadati utente per l'oggetto, come coppie chiave-valore |
Etichette |
etichette
|
Tutti i tag oggetto definiti per l'oggetto, come coppie chiave-valore |
|
Per i tag e i metadati utente, StorageGRID passa date e numeri a Elasticsearch come stringhe o come notifiche di eventi S3. Per configurare Elasticsearch in modo che interpreti queste stringhe come date o numeri, seguire le istruzioni di Elasticsearch per la mappatura dinamica dei campi e per la mappatura dei formati di data. È necessario abilitare i mapping dei campi dinamici sull'indice prima di configurare il servizio di integrazione della ricerca. Dopo aver indicizzato un documento, non è possibile modificare i tipi di campo del documento nell'indice. |