Operazioni per l'oggetto
Le moderne funzionalità di IBM Cloud® Object Storage sono comodamente disponibili tramite un'API RESTful. Le operazioni e i metodi per la lettura, la scrittura e la configurazione degli oggetti (memorizzati in un bucket) sono documentati qui.
Per ulteriori informazioni sugli endpoint, vedi Endpoint e ubicazioni di archiviazione.
Una nota relativa all'autenticazione HMAC (Access / Secret Key)
Durante l'autenticazione alla tua istanza di IBM Cloud Object Storage utilizzando le credenziali HMAC, hai bisogno delle informazioni rappresentate nella Tabella 1 quando costruisci una firma HMAC.
| Chiave | Valore | Esempio |
|---|---|---|
| {access_key} | Chiave di accesso assegnata alle credenziali di servizio | cf4965cebe074720a4929759f57e1214 |
| {date} | La data formattata della tua richiesta (yyyymmdd) |
20180613 |
| {region} | Il codice di ubicazione per l'endpoint | us - standard |
| {signature} | L'hash creato utilizzando la chiave segreta, l'ubicazione e la data | ffe2b6e18f9dcc41f593f4dbb39882a6bb4d26a73a04326e62a8d344e07c1a3e |
| {timestamp} | La data e l'ora formattate della richiesta | 20180614T001804Z |
Carica un oggetto
Una richiesta PUT, dato un percorso a un oggetto, carica il corpo della richiesta come un oggetto. Tutti gli oggetti caricati in un singolo thread devono essere inferiori a 500 MB per ridurre il rischio di interruzioni di rete.
(gli oggetti caricati in più parti possono avere una dimensione di 10 TB).
Informazioni di identificazione personale (PII): quando si assegnano nomi a bucket o oggetti, non utilizzare informazioni che possano identificare un utente (persona fisica) tramite nome, posizione o qualsiasi altro mezzo.
È possibile eseguire lo streaming di oggetti fino a 5 GB utilizzando una singola richiesta PUT. I caricamenti multiparte sono più affidabili e possono essere caricati in modo più efficiente utilizzando più thread per caricare parti
in parallelo. Il caricamento di oggetti più grandi in una singola richiesta PUT determina le limitazioni delle prestazioni di un singolo thread e, in caso di errori, i caricamenti a thread singolo dovranno essere ritentati nella
loro interezza (mentre con MPU solo le parti specifiche che non sono riuscite devono essere ritentate). Il throughput preciso che può essere raggiunto da un singolo thread varia a seconda della larghezza di banda della rete dal client all'endpoint
IBM Cloud, del tasso di perdita di pacchetti (se presente) su quella connessione, dell'uso di HTTP rispetto a HTTPS, dei codici di cifratura specifici utilizzati nella connessione e dei parametri specifici della connessione TCP (come la dimensione
della finestra), nonché di altri fattori. Sebbene questi fattori possano essere ottimizzati per un caricamento a thread singolo, le ottimizzazioni si applicheranno ugualmente a tutti i caricamenti a thread multipli (multiparte).
Informazioni di identificazione personale (PII): quando si creano bucket o si aggiungono oggetti, assicurarsi di non utilizzare alcuna informazione che possa identificare un utente (persona fisica) tramite nome, posizione o qualsiasi altro mezzo.
Sintassi
PUT https://{endpoint}/{bucket-name}/{object-name} # path style
PUT https://{bucket-name}.{endpoint}/{object-name} # virtual host style
Intestazioni facoltative
| Intestazione | Immettere | Descrizione |
|---|---|---|
x-amz-tagging |
stringa | Una serie di tag da applicare all'oggetto, formattati come parametri di query ("SomeKey=SomeValue"). |
x-amz-object-lock-mode |
stringa | Il valore valido è COMPLIANCE o GOVERNANCE- richiesto se x-amz-object-lock-retain-until-date è presente. |
x-amz-object-lock-retain-until-date |
ISO8601 Data e ora | Obbligatorio se x-amz-object-lock-mode è presente. |
x-amz-object-lock-legal-hold |
stringa | I valori validi sono ON o OFF. |
Content-MD5 |
Stringa | L' Base64, codificato con hash a 128 bit MD5 del payload, viene utilizzato come controllo di integrità per garantire che il payload non sia stato alterato durante il trasferimento. |
x-amz-checksum-crc32 |
Stringa | Questa intestazione è il checksum Base64 codificato a 32 bit CRC32 dell'oggetto. |
x-amz-checksum-crc32c |
Stringa | Questa intestazione è il checksum Base64 codificato a 32 bit CRC32C dell'oggetto. |
x-amz-checksum-crc64nvme |
Stringa | Questa intestazione è il checksum Base64 codificato a 64 bit CRC64NVME dell'oggetto. Il checksum di CRC64NVME è sempre un checksum completo dell'oggetto. |
x-amz-checksum-sha1 |
Stringa | Questa intestazione è il digest Base64 codificato a 160 bit SHA1 dell'oggetto. |
x-amz-checksum-sha256 |
Stringa | Questa intestazione è il digest Base64 codificato a 256 bit SHA256 dell'oggetto. |
x-amz-sdk-checksum-algorithm |
Stringa | Indica l'algoritmo usato per creare il checksum dell'oggetto quando si usa l'SDK. |
x-amz-trailer |
Stringa | Indica quale intestazione del valore di checksum sarà presente nel trailer del payload per verificare l'integrità del caricamento dell'oggetto. |
Richiesta di esempio
PUT /apiary/queen-bee HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain; charset=utf-8
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 533
The 'queen' bee is developed from larvae selected by worker bees and fed a
substance referred to as 'royal jelly' to accelerate sexual maturity. After a
short while the 'queen' is the mother of nearly every bee in the hive, and
the colony will fight fiercely to protect her.
Richiesta di esempio
PUT /apiary/queen-bee HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
x-amz-content-sha256: {payload_hash}
Content-Type: text/plain; charset=utf-8
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 533
The 'queen' bee is developed from larvae selected by worker bees and fed a
substance referred to as 'royal jelly' to accelerate sexual maturity. After a
short while the 'queen' is the mother of nearly every bee in the hive, and
the colony will fight fiercely to protect her.
Risposta di esempio
HTTP/1.1 200 OK
Date: Thu, 25 Aug 2016 18:30:02 GMT
X-Clv-Request-Id: 9f0ca49a-ae13-4d2d-925b-117b157cf5c3
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.121
X-Clv-S3-Version: 2.5
x-amz-request-id: 9f0ca49a-ae13-4d2d-925b-117b157cf5c3
ETag: "3ca744fa96cb95e92081708887f63de5"
x-amz-checksum-crc64nvme: T1r5SUWc07k=
x-amz-checksum-type: FULL_OBJECT
Content-Length: 0
Ottieni le intestazioni di un oggetto
Una richiesta HEAD, dato un percorso a un oggetto, richiama le intestazioni di tale oggetto.
Il Etag valore restituito per gli oggetti crittografati utilizzando SSE-KP è l'hash MD5 dell'oggetto originale decrittografato.
Sintassi
HEAD https://{endpoint}/{bucket-name}/{object-name} # path style
HEAD https://{bucket-name}.{endpoint}/{object-name} # virtual host style
Intestazioni facoltative
| Intestazione | Immettere | Descrizione |
|---|---|---|
x-amz-checksum-mode |
stringa | Indica se includere o meno i metadati della somma di controllo nella risposta. |
Richiesta di esempio
HEAD /apiary/soldier-bee HTTP/1.1
Authorization: Bearer {token}
Host: s3-api.sjc-us-geo.objectstorage.s3.us-south.cloud-object-storage.appdomain.cloud.net
Richiesta di esempio
HEAD /apiary/soldier-bee HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Host: s3.us.cloud-object-storage.appdomain.cloud
Risposta di esempio
HTTP/1.1 200 OK
Date: Thu, 25 Aug 2016 18:32:44 GMT
X-Clv-Request-Id: da214d69-1999-4461-a130-81ba33c484a6
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.121
X-Clv-S3-Version: 2.5
x-amz-request-id: da214d69-1999-4461-a130-81ba33c484a6
ETag: "37d4c94839ee181a2224d6242176c4b5"
x-amz-checksum-crc64nvme: T1r5SUWc07k=
x-amz-checksum-type: FULL_OBJECT
Content-Type: text/plain; charset=UTF-8
Last-Modified: Thu, 25 Aug 2016 17:49:06 GMT
Content-Length: 11
Scarica un oggetto
Una richiesta GET, dato un percorso a un oggetto, scarica l'oggetto.
Il valore Etag restituito per gli oggetti crittografati utilizzando SSE-C/SSE-KP non sarà l'hash MD5 dell'oggetto decrittografato originale.
Sintassi
GET https://{endpoint}/{bucket-name}/{object-name} # path style
GET https://{bucket-name}.{endpoint}/{object-name} # virtual host style
Intestazioni facoltative
| Intestazione | Immettere | Descrizione |
|---|---|---|
range |
Stringa | Restituisce i byte di un oggetto all'interno dell'intervallo specificato. |
x-amz-checksum-mode |
Stringa | Indica se includere o meno i metadati della somma di controllo nella risposta. |
Richiesta di esempio
GET /apiary/worker-bee HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
Richiesta di esempio
GET /apiary/worker-bee HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Host: s3.us.cloud-object-storage.appdomain.cloud
Risposta di esempio
HTTP/1.1 200 OK
Date: Thu, 25 Aug 2016 18:34:25 GMT
X-Clv-Request-Id: 116dcd6b-215d-4a81-bd30-30291fa38f93
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.121
X-Clv-S3-Version: 2.5
x-amz-request-id: 116dcd6b-215d-4a81-bd30-30291fa38f93
ETag: "d34d8aada2996fc42e6948b926513907"
Content-Type: text/plain; charset=UTF-8
Last-Modified: Thu, 25 Aug 2016 17:46:53 GMT
Content-Length: 467
Female bees that are not fortunate enough to be selected to be the 'queen'
while they were still larvae become known as 'worker' bees. These bees lack
the ability to reproduce and instead ensure that the hive functions smoothly,
acting almost as a single organism in fulfilling their purpose.
Elimina un oggetto
Una richiesta DELETE, dato un percorso a un oggetto, elimina un oggetto.
Sintassi
DELETE https://{endpoint}/{bucket-name}/{object-name} # path style
DELETE https://{bucket-name}.{endpoint}/{object-name} # virtual host style
Richiesta di esempio
DELETE /apiary/soldier-bee HTTP/1.1
Authorization: Bearer {token}
Host: s3-api.sjc-us-geo.objectstorage.s3.us-south.cloud-object-storage.appdomain.cloud.net
Richiesta di esempio
DELETE /apiary/soldier-bee HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Host: s3.us.cloud-object-storage.appdomain.cloud
Risposta di esempio
HTTP/1.1 204 No Content
Date: Thu, 25 Aug 2016 17:44:57 GMT
X-Clv-Request-Id: 8ff4dc32-a6f0-447f-86cf-427b564d5855
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.121
X-Clv-S3-Version: 2.5
x-amz-request-id: 8ff4dc32-a6f0-447f-86cf-427b564d5855
Elimina più oggetti
Una richiesta POST, dati un percorso a un bucket e parametri appropriati, elimina un insieme specificato di oggetti. Un'intestazione Content-MD5 o un'intestazione checksum (comprese x-amz-checksum-crc32,
x-amz-checksum-crc32c, x-amz-checksum-crc64nvme, x-amz-checksum-sha1, o x-amz-checksum-sha256) è richiesta come controllo di integrità per il payload.
Intestazioni facoltative
| Intestazione | Immettere | Descrizione |
|---|---|---|
Content-MD5 |
Stringa | L' base64, codificato con hash a 128 bit MD5 del payload, viene utilizzato come controllo di integrità per garantire che il payload non sia stato alterato durante il trasferimento. |
x-amz-checksum-crc32 |
Stringa | Questa intestazione è il checksum Base64 codificato a 32 bit CRC32 dell'oggetto. |
x-amz-checksum-crc32c |
Stringa | Questa intestazione è il checksum Base64 codificato a 32 bit CRC32C dell'oggetto. |
x-amz-checksum-crc64nvme |
Stringa | Questa intestazione è il checksum Base64 codificato a 64 bit CRC64NVME dell'oggetto. Il checksum di CRC64NVME è sempre un checksum completo dell'oggetto. |
x-amz-checksum-sha1 |
Stringa | Questa intestazione è il digest Base64 codificato a 160 bit SHA1 dell'oggetto. |
x-amz-checksum-sha256 |
Stringa | Questa intestazione è il digest Base64 codificato a 256 bit SHA256 dell'oggetto. |
Quando un oggetto specificato nella richiesta non viene trovato, il risultato viene restituito come eliminato.
Le eliminazioni di più oggetti coinvolgono un POST operation addebitato come Classe A. Il costo della richiesta POST per più eliminazioni varia a seconda della classe di memoria degli oggetti e della quantità di dati
eliminati. Per ulteriori informazioni sui prezzi, consulta la pagina dei prezzi di IBM Cloud Object Storage.
Elementi facoltativi
| Intestazione | Immettere | Descrizione |
|---|---|---|
Quiet |
Booleano | Abilita la modalità quiet per la richiesta. |
La richiesta può contenere massimo 1000 chiavi che vuoi eliminare. Se da una parte questo è utile per ridurre il numero di richieste, fai attenzione quando elimini molte chiavi. Inoltre, prendi in considerazione anche le dimensioni degli oggetti per garantire delle prestazioni adeguate.
Il seguente codice mostra un esempio di come creare la rappresentazione necessaria del contenuto dell'intestazione:
echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64
Sintassi
POST https://{endpoint}/{bucket-name}?delete= # path style
POST https://{bucket-name}.{endpoint}?delete= # virtual host style
Il corpo della richiesta deve contenere un blocco XML con il seguente schema:
| Elemento | Immettere | Elemento secondario | Predecessore | Vincolo |
|---|---|---|---|---|
| Elimina | Container | Oggetto |
|
|
| Oggetto | Container | Chiave | Elimina |
|
| Chiave | Stringa |
|
Oggetto | Stringa chiave valida |
Richiesta di esempio
POST /apiary?delete= HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Type: text/plain; charset=utf-8
Content-MD5: xj/vf7lD7vbIe/bqHTaLvg==
Richiesta di esempio
POST /apiary?delete= HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain; charset=utf-8
Content-MD5: xj/vf7lD7vbIe/bqHTaLvg==
Host: s3.us.cloud-object-storage.appdomain.cloud
Risposta di esempio
HTTP/1.1 200 OK
Date: Wed, 30 Nov 2016 18:54:53 GMT
X-Clv-Request-Id: a6232735-c3b7-4c13-a7b2-cd40c4728d51
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.137
X-Clv-S3-Version: 2.5
x-amz-request-id: a6232735-c3b7-4c13-a7b2-cd40c4728d51
Content-Type: application/xml
Content-Length: 207
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<DeleteResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Deleted>
<Key>surplus-bee</Key>
</Deleted>
<Deleted>
<Key>unnecessary-bee</Key>
</Deleted>
</DeleteResult>
Aggiungere o aggiornare la conservazione su un oggetto
Un PUT emesso a un oggetto con i parametri corretti aggiunge o estende il periodo di conservazione. In COMPLIANCE modalità, il periodo di conservazione può solo essere esteso e non può essere abbreviato o rimosso. In
GOVERNANCE modalità, gli utenti autorizzati possono estendere, abbreviare o rimuovere il periodo di conservazione includendo x-amz-bypass-governance-retention l'intestazione.
Sintassi
PUT https://{endpoint}/{bucket-name}/{object-name}?retention # path style
PUT https://{bucket-name}.{endpoint}/{object-name}?retention # virtual host style
Elementi del payload
Il corpo della richiesta deve contenere un blocco XML con il seguente schema:
| Elemento | Immettere | Elemento secondario | Predecessore | Note |
|---|---|---|---|---|
| Conservazione | Container | Modalità, RetainUntilDate |
|
Obbligatorio |
| Modalità | Stringa |
|
Conservazione | Obbligatorio - il valore valido è COMPLIANCE o GOVERNANCE |
| RetainUntilDate | Data/ora |
|
Conservazione | Obbligatorio |
Intestazioni facoltative
| Intestazione | Immettere | Descrizione |
|---|---|---|
x-amz-bypass-governance-retention |
Stringa | Questa intestazione consente agli utenti autorizzati di ignorare le impostazioni di conservazione in modalità GOVERNANCE per eliminare o modificare un oggetto prima della sua data di conservazione. |
Il seguente codice mostra un esempio di come creare la rappresentazione necessaria del contenuto dell'intestazione:
echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64
Richiesta di esempio
Questo è un esempio di aggiunta o estensione della conservazione su un oggetto.
PUT /apiary/myObject?retention HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Content-MD5: cDeRJIdLuEXWmLpA79K2kg==
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 119
<Retention>
<Mode>COMPLIANCE</Mode>
<RetainUntilDate>2023-04-12T23:01:00.000Z</RetainUntilDate>
</Retention>
Risposta di esempio
HTTP/1.1 200 OK
Date: Wed, 5 Oct 2020 15:39:38 GMT
X-Clv-Request-Id: 7afca6d8-e209-4519-8f2c-1af3f1540b42
Accept-Ranges: bytes
Content-Length: 0
Copia un oggetto
Una richiesta PUT, dato un percorso a un nuovo oggetto, crea una nuova copia di un altro oggetto specificato dall'intestazione x-amz-copy-source. A meno che non vengano modificati, i metadati rimangono gli stessi.
Informazioni di identificazione personale (PII): quando si assegnano nomi a bucket o oggetti, non utilizzare informazioni che possano identificare un utente (persona fisica) tramite nome, posizione o qualsiasi altro mezzo.
La copia degli oggetti (anche tra le ubicazioni) non comporta i costi della larghezza di banda in uscita pubblica. Tutti i dati rimangono all'interno della rete interna COS.
Sintassi
PUT https://{endpoint}/{bucket-name}/{object-name} # path style
PUT https://{bucket-name}.{endpoint}/{object-name} # virtual host style
Intestazioni facoltative
| Intestazione | Immettere | Descrizione |
|---|---|---|
x-amz-metadata-directive |
stringa (COPY o REPLACE) |
Un AREPLACE sovrascrive i metadati originali con i nuovi metadati forniti. |
x-amz-tagging |
stringa | Una serie di tag da applicare all'oggetto, formattati come parametri di query ("SomeKey=SomeValue"). |
x-amz-tagging-directive |
stringa (COPY o REPLACE) |
A REPLACE sovrascrive i tag originali con i nuovi tag forniti. |
x-amz-copy-source-if-match |
Stringa (ETag) |
Crea una copia se l'ETag specificato corrisponde all'oggetto di origine. |
x-amz-copy-source-if-none-match |
Stringa (ETag) |
Crea una copia se l'ETag specificato è diverso dall'oggetto di origine. |
x-amz-copy-source-if-unmodified-since |
Stringa (time stamp) | Crea una copia se l'oggetto di origine non è stato modificato dopo la data specificata. La data deve essere una data HTTP valida (ad esempio, Wed, 30 Nov 2016 20:21:38 GMT). |
x-amz-copy-source-if-modified-since |
Stringa (time stamp) | Crea una copia se l'oggetto di origine è stato modificato dopo la data specificata. La data deve essere una data HTTP valida (ad esempio, Wed, 30 Nov 2016 20:21:38 GMT). |
x-amz-checksum-algorithm |
Stringa | Indica quale algoritmo di checksum verrà utilizzato per creare il checksum dell'oggetto di destinazione. |
Richiesta di esempio
Questo esempio di base prende l'oggetto bee dal bucket garden e crea una copia nel bucket apiary con la nuova chiave wild-bee.
PUT /apiary/wild-bee HTTP/1.1
Authorization: Bearer {token}
x-amz-copy-source: /garden/bee
Host: s3.us.cloud-object-storage.appdomain.cloud
Richiesta di esempio
PUT /apiary/wild-bee HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
x-amz-copy-source: /garden/bee
Host: s3.us.cloud-object-storage.appdomain.cloud
Risposta di esempio
HTTP/1.1 200 OK
Date: Wed, 30 Nov 2016 19:52:52 GMT
X-Clv-Request-Id: 72992a90-8f86-433f-b1a4-7b1b33714bed
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.137
X-Clv-S3-Version: 2.5
x-amz-request-id: 72992a90-8f86-433f-b1a4-7b1b33714bed
ETag: "853aab195ce770b0dfb294a4e9467e62"
Content-Type: application/xml
Content-Length: 240
<CopyObjectResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<LastModified>2016-11-30T19:52:53.125Z</LastModified>
<ETag>"853aab195ce770b0dfb294a4e9467e62"</ETag>
</CopyObjectResult>
Controlla la configurazione CORS di un oggetto
Una richiesta OPTIONS, dato un percorso a un oggetto insieme a un'origine e a un tipo di richiesta, esegue un controllo per vedere se tale oggetto è accessibile da tale origine utilizzando tale tipo di richiesta. Diversamente da
tutte le altre richieste, una richiesta OPTIONS non richiede le intestazioni authorization o x-amx-date.
Sintassi
OPTIONS https://{endpoint}/{bucket-name}/{object-name} # path style
OPTIONS https://{bucket-name}.{endpoint}/{object-name} # virtual host style
Richiesta di esempio
OPTIONS /apiary/queen-bee HTTP/1.1
Access-Control-Request-Method: PUT
Origin: http://ibm.com
Host: s3.us.cloud-object-storage.appdomain.cloud
Richiesta di esempio
OPTIONS /apiary/queen-bee HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Access-Control-Request-Method: PUT
Origin: http://ibm.com
Host: s3.us.cloud-object-storage.appdomain.cloud
Risposta di esempio
HTTP/1.1 200 OK
Date: Wed, 07 Dec 2016 16:23:14 GMT
X-Clv-Request-Id: 9a2ae3e1-76dd-4eec-a8f2-1a7f60f63483
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.137
X-Clv-S3-Version: 2.5
x-amz-request-id: 9a2ae3e1-76dd-4eec-a8f2-1a7f60f63483
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: PUT
Access-Control-Allow-Credentials: true
Vary: Origin, Access-Control-Request-Headers, Access-Control-Allow-Methods
Content-Length: 0
Caricamento degli oggetti in più parti
Quando utilizzi oggetti più grandi, ti consigliamo di utilizzare le operazioni di caricamento in più parti per scrivere gli oggetti in IBM Cloud® Object Storage. Un caricamento di un singolo oggetto può essere eseguito come una serie di parti e tali parti possono essere caricate indipendentemente in qualsiasi ordine e in parallelo. Una volta completato il caricamento, Object Storage presenta quindi tutte le parti come un singolo oggetto. Questo offre molti vantaggi: le interruzioni di rete non causano la mancata riuscita di grandi caricamenti, i caricamenti possono essere messi in pausa e riavviati nel corso del tempo e gli oggetti possono essere caricati man mano che vengono creati.
I caricamenti in più parti sono disponibili solo per gli oggetti più grandi di 5 MB. Per gli oggetti più piccoli di 50 GB, ti consigliamo una dimensione della parte che vada da 20 MB a 100 MB per prestazioni ottimali. Per gli oggetti più grandi, la dimensione della parte può essere aumentata senza un significativo impatto sulle prestazioni.
A causa della complessità aggiuntiva coinvolta, ti consigliamo di far utilizzare agli sviluppatori una libreria che fornisca il supporto per il caricamento in più parti.
I caricamenti in più parti incompleti persistono fino a quando l'oggetto non viene eliminato oppure il caricamento in più parti non viene interrotto con AbortIncompleteMultipartUpload. Se un caricamento in più parti incompleto non
viene interrotto, il caricamento parziale continua a utilizzare le risorse. Le interfacce devono essere progettate tenendo presente questo comportamento ed eliminare i caricamenti in più parti incompleti.
Ci sono tre fasi per caricare un oggetto in più parti:
- Il caricamento viene avviato e viene creato un
UploadId. - Vengono caricate singole parti specificando i loro numeri sequenziali e l'
UploadIdper l'oggetto. - Una volta terminato il caricamento di tutte le parti, il caricamento viene completato inviando una richiesta con l'
UploadIde un blocco XML che elenca ogni numero parte e il rispettivo valoreEtag.
Avvia un caricamento in più parti
Una richiesta POST emessa per un oggetto con il parametro di query upload crea un nuovo valore UploadId a cui fa poi riferimento ogni parte dell'oggetto che viene caricato.
Informazioni di identificazione personale (PII): quando si assegnano nomi a bucket o oggetti, non utilizzare informazioni che possano identificare un utente (persona fisica) tramite nome, posizione o qualsiasi altro mezzo.
Sintassi
POST https://{endpoint}/{bucket-name}/{object-name}?uploads= # path style
POST https://{bucket-name}.{endpoint}/{object-name}?uploads= # virtual host style
Intestazioni facoltative
| Intestazione | Immettere | Descrizione |
|---|---|---|
x-amz-checksum-algorithm |
Stringa | Indica quale algoritmo di checksum verrà utilizzato per creare il checksum dell'intero oggetto multiplart. |
x-amz-checksum-type |
Stringa | Indica il tipo di checksum da utilizzare per creare il checksum dell'intero oggetto multiplart. |
Richiesta di esempio
POST /some-bucket/multipart-object-123?uploads= HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
Richiesta di esempio
POST /some-bucket/multipart-object-123?uploads= HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Host: s3.us.cloud-object-storage.appdomain.cloud
Risposta di esempio
HTTP/1.1 200 OK
Date: Fri, 03 Mar 2017 20:34:12 GMT
X-Clv-Request-Id: 258fdd5a-f9be-40f0-990f-5f4225e0c8e5
Accept-Ranges: bytes
Server: Cleversafe/3.9.1.114
X-Clv-S3-Version: 2.5
Content-Type: application/xml
Content-Length: 276
<InitiateMultipartUploadResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Bucket>some-bucket</Bucket>
<Key>multipart-object-123</Key>
<UploadId>0000015a-95e1-4326-654e-a1b57887784f</UploadId>
</InitiateMultipartUploadResult>
Caricare una parte
Una richiesta PUT emessa per un oggetto con i parametri di query partNumber e uploadId caricherà una parte di un oggetto. Le parti possono essere caricate in modo seriale o in parallelo, ma devono essere
numerate in ordine.
Informazioni di identificazione personale (PII): quando si assegnano nomi a bucket o oggetti, non utilizzare informazioni che possano identificare un utente (persona fisica) tramite nome, posizione o qualsiasi altro mezzo.
Sintassi
PUT https://{endpoint}/{bucket-name}/{object-name}?partNumber={sequential-integer}&uploadId={uploadId}= # path style
PUT https://{bucket-name}.{endpoint}/{object-name}?partNumber={sequential-integer}&uploadId={uploadId}= # virtual host style
Intestazioni facoltative
| Intestazione | Immettere | Descrizione |
|---|---|---|
Content-MD5 |
Stringa | L' Base64, codificato con hash a 128 bit MD5 del payload, viene utilizzato come controllo di integrità per garantire che il payload non sia stato alterato durante il trasferimento. |
x-amz-checksum-crc32 |
Stringa | Questa intestazione è il checksum Base64 codificato a 32 bit CRC32 dell'oggetto. |
x-amz-checksum-crc32c |
Stringa | Questa intestazione è il checksum Base64 codificato a 32 bit CRC32C dell'oggetto. |
x-amz-checksum-crc64nvme |
Stringa | Questa intestazione è il checksum Base64 codificato a 64 bit CRC64NVME dell'oggetto. Il checksum di CRC64NVME è sempre un checksum completo dell'oggetto. |
x-amz-checksum-sha1 |
Stringa | Questa intestazione è il digest Base64 codificato a 160 bit SHA1 dell'oggetto. |
x-amz-checksum-sha256 |
Stringa | Questa intestazione è il digest Base64 codificato a 256 bit SHA256 dell'oggetto. |
x-amz-sdk-checksum-algorithm |
Stringa | Indica l'algoritmo usato per creare il checksum dell'oggetto quando si usa l'SDK. |
x-amz-trailer |
Stringa | Indica quale intestazione del valore di checksum sarà presente nel trailer del payload per verificare l'integrità del caricamento dell'oggetto. |
Richiesta di esempio
PUT /some-bucket/multipart-object-123?partNumber=1&uploadId=0000015a-df89-51d0-2790-dee1ac994053 HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/pdf
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 13374550
Richiesta di esempio
PUT /some-bucket/multipart-object-123?partNumber=1&uploadId=0000015a-df89-51d0-2790-dee1ac994053 HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
x-amz-content-sha256: STREAMING-AWS4-HMAC-SHA256-PAYLOAD
Content-Encoding: aws-chunked
x-amz-decoded-content-length: 13374550
Content-Type: application/pdf
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 13374550
Risposta di esempio
HTTP/1.1 200 OK
Date: Sat, 18 Mar 2017 03:56:41 GMT
X-Clv-Request-Id: 17ba921d-1c27-4f31-8396-2e6588be5c6d
Accept-Ranges: bytes
Server: Cleversafe/3.9.1.114
X-Clv-S3-Version: 2.5
ETag: "7417ca8d45a71b692168f0419c17fe2f"
Content-Length: 0
Elenca le parti
Una richiesta GET, dato un percorso a un oggetto in più parti con un UploadID attivo specificato come parametro di query, restituisce un elenco di tutte le parti dell'oggetto.
Sintassi
GET https://{endpoint}/{bucket-name}/{object-name}?uploadId={uploadId} # path style
GET https://{bucket-name}.{endpoint}/{object-name}?uploadId={uploadId} # virtual host style
Parametri di query
| Parametro | Obbligatorio? | Tipo | Descrizione |
|---|---|---|---|
uploadId |
Obbligatorio | string | ID di caricamento restituito durante l'inizializzazione di un caricamento in più parti. |
max-parts |
Facoltativo | stringa | Il valore predefinito è 1.000. |
part-number-marker |
Facoltativo | stringa | Definisce dove inizia l'elenco delle parti. |
Richiesta di esempio
GET /farm/spaceship?uploadId=01000162-3f46-6ab8-4b5f-f7060b310f37 HTTP/1.1
Authorization: bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
Richiesta di esempio
GET /farm/spaceship?uploadId=01000162-3f46-6ab8-4b5f-f7060b310f37 HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Host: s3.us.cloud-object-storage.appdomain.cloud
Risposta di esempio
HTTP/1.1 200 OK
Date: Mon, 19 Mar 2018 17:21:08 GMT
X-Clv-Request-Id: 6544044d-4f88-4bb6-9ee5-bfadf5023249
Server: Cleversafe/3.12.4.20
X-Clv-S3-Version: 2.5
Accept-Ranges: bytes
Content-Type: application/xml
Content-Length: 743
<ListPartsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Bucket>farm</Bucket>
<Key>spaceship</Key>
<UploadId>01000162-3f46-6ab8-4b5f-f7060b310f37</UploadId>
<Initiator>
<ID>d6f04d83-6c4f-4a62-a165-696756d63903</ID>
<DisplayName>d6f04d83-6c4f-4a62-a165-696756d63903</DisplayName>
</Initiator>
<Owner>
<ID>d6f04d83-6c4f-4a62-a165-696756d63903</ID>
<DisplayName>d6f04d83-6c4f-4a62-a165-696756d63903</DisplayName>
</Owner>
<StorageClass>STANDARD</StorageClass>
<MaxParts>1000</MaxParts>
<IsTruncated>false</IsTruncated>
<Part>
<PartNumber>1</PartNumber>
<LastModified>2018-03-19T17:20:35.482Z</LastModified>
<ETag>"bb03cf4fa8603fe407a65ee1dba55265"</ETag>
<Size>7128094</Size>
</Part>
</ListPartsResult>
Completa un caricamento in più parti
Una richiesta POST emessa per un oggetto con il parametro di query uploadId e il blocco XML appropriato nel corpo, completerà un caricamento in più parti.
Sintassi
POST https://{endpoint}/{bucket-name}/{object-name}?uploadId={uploadId}= # path style
POST https://{bucket-name}.{endpoint}/{object-name}?uploadId={uploadId}= # virtual host style
Intestazioni facoltative
| Intestazione | Immettere | Descrizione |
|---|---|---|
x-amz-checksum-crc32 |
Stringa | Questa intestazione è il checksum Base64 codificato a 32 bit CRC32 dell'oggetto. |
x-amz-checksum-crc32c |
Stringa | Questa intestazione è il checksum Base64 codificato a 32 bit CRC32C dell'oggetto. |
x-amz-checksum-crc64nvme |
Stringa | Questa intestazione è il checksum Base64 codificato a 64 bit CRC64NVME dell'oggetto. Il checksum di CRC64NVME è sempre un checksum completo dell'oggetto. |
x-amz-checksum-sha1 |
Stringa | Questa intestazione è il digest Base64 codificato a 160 bit SHA1 dell'oggetto. |
x-amz-checksum-sha256 |
Stringa | Questa intestazione è il digest Base64 codificato a 256 bit SHA256 dell'oggetto. |
x-amz-checksum-type |
Stringa | Indica il tipo di checksum da utilizzare per creare il checksum dell'intero oggetto multiplart. |
Il corpo della richiesta deve contenere un blocco XML con il seguente schema:
| Elemento | Immettere | Elemento secondario | Predecessore | Vincolo |
|---|---|---|---|---|
| CompleteMultipartUpload | Container | Parte |
|
|
| Parte | Container | PartNumber, ETag |
Elimina |
|
| PartNumber | Stringa |
|
Oggetto | Numero parte valido |
ETag |
Stringa |
|
Oggetto | Stringa valore ETag valido |
<CompleteMultipartUpload>
<Part>
<PartNumber>{sequential part number}</PartNumber>
<ETag>{ETag value from part upload response header}</ETag>
</Part>
</CompleteMultipartUpload>
Richiesta di esempio
POST /some-bucket/multipart-object-123?uploadId=0000015a-df89-51d0-2790-dee1ac994053 HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain; charset=utf-8
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 257
Richiesta di esempio
POST /some-bucket/multipart-object-123?uploadId=0000015a-df89-51d0-2790-dee1ac994053 HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain; charset=utf-8
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 257
<CompleteMultipartUpload>
<Part>
<PartNumber>1</PartNumber>
<ETag>"7417ca8d45a71b692168f0419c17fe2f"</ETag>
</Part>
<Part>
<PartNumber>2</PartNumber>
<ETag>"7417ca8d45a71b692168f0419c17fe2f"</ETag>
</Part>
</CompleteMultipartUpload>
Risposta di esempio
HTTP/1.1 200 OK
Date: Fri, 03 Mar 2017 19:18:44 GMT
X-Clv-Request-Id: c8be10e7-94c4-4c03-9960-6f242b42424d
Accept-Ranges: bytes
Server: Cleversafe/3.9.1.114
X-Clv-S3-Version: 2.5
ETag: "765ba3df36cf24e49f67fc6f689dfc6e-2"
Content-Type: application/xml
Content-Length: 364
<CompleteMultipartUploadResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Location>http://s3.us.cloud-object-storage.appdomain.cloud/zopse/multipart-object-123</Location>
<Bucket>some-bucket</Bucket>
<Key>multipart-object-123</Key>
<ETag>"765ba3df36cf24e49f67fc6f689dfc6e-2"</ETag>
</CompleteMultipartUploadResult>
Interrompi i caricamenti in più parti incompleti
Una richiesta DELETE emessa per un oggetto con il parametro di query uploadId elimina tutte le parti incomplete di un caricamento in più parti.
Sintassi
DELETE https://{endpoint}/{bucket-name}/{object-name}?uploadId={uploadId}= # path style
DELETE https://{bucket-name}.{endpoint}/{object-name}?uploadId={uploadId}= # virtual host style
Richiesta di esempio
DELETE /some-bucket/multipart-object-123?uploadId=0000015a-df89-51d0-2790-dee1ac994053 HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
Richiesta di esempio
DELETE /some-bucket/multipart-object-123?uploadId=0000015a-df89-51d0-2790-dee1ac994053 HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Host: s3.us.cloud-object-storage.appdomain.cloud
Risposta di esempio
HTTP/1.1 204 No Content
Date: Thu, 16 Mar 2017 22:07:48 GMT
X-Clv-Request-Id: 06d67542-6a3f-4616-be25-fc4dbdf242ad
Accept-Ranges: bytes
Server: Cleversafe/3.9.1.114
X-Clv-S3-Version: 2.5
Ripristina temporaneamente un oggetto archiviato
Una richiesta POST emessa per un oggetto con il parametro di query restore per richiedere il ripristino temporaneo di un oggetto archiviato. Un'intestazione Content-MD5 o un'intestazione checksum (comprese x-amz-checksum-crc32, x-amz-checksum-crc32c, x-amz-checksum-crc64nvme, x-amz-checksum-sha1, o x-amz-checksum-sha256) è richiesta come controllo di integrità per il
payload.
Un oggetto archiviato deve essere ripristinato prima di scaricare o di modificare l'oggetto. Devi specificare il ciclo di vita dell'oggetto trascorso il quale la copia temporanea dell'oggetto verrà eliminata.
Per i bucket con una classe di archiviazione di transizione della politica del ciclo di vita di GLACIER, può esserci un ritardo fino a 12 ore prima che la copia ripristinata sia disponibile per l'accesso. Se la classe di memoria
di transizione è stata impostata su ACCELERATED, può esserci un ritardo fino a due (2) ore prima che l'oggetto ripristinato sia disponibile. Una richiesta HEAD può controllare se la copia ripristinata è disponibile.
Per ripristinare in modo permanente l'oggetto, deve essere copiato in un bucket che non ha una configurazione attiva del ciclo di vita.
Sintassi
POST https://{endpoint}/{bucket-name}/{object-name}?restore # path style
POST https://{bucket-name}.{endpoint}/{object-name}?restore # virtual host style
Elementi del payload
Il corpo della richiesta deve contenere un blocco XML con il seguente schema:
| Elemento | Immettere | Elemento secondario | Predecessore | Vincolo |
|---|---|---|---|---|
| RestoreRequest | Container | Days, GlacierJobParameters | Nessuno | Nessuno |
| Giorni | Numero intero | Nessuno | RestoreRequest | Specificato il ciclo di vita dell'oggetto ripristinato temporaneamente. Il numero minimo di giorni in cui può esistere una copia ripristinata dell'oggetto è 1. Una volta trascorso il periodo di ripristino, la copia temporanea dell'oggetto verrà rimossa. |
| GlacierJobParameters | Stringa | Livello | RestoreRequest | Nessuno |
| Livello | Stringa | Nessuno | GlacierJobParameters | Facoltativo e, se lasciato vuoto, verrà utilizzato il valore predefinito associato al livello di archiviazione della politica che era in vigore quando è stato scritto l'oggetto. Se questo valore non viene lasciato vuoto, deve essere impostato su Bulk se la classe di archiviazione della transizione per la politica del ciclo di vita del bucket è stata impostata su GLACIER, e deve essere impostato su Accelerated se la classe di archiviazione della transizione è stata impostata su ACCELERATED. |
| Intestazione | Immettere | Descrizione |
|---|---|---|
Content-MD5 |
Stringa | L' base64, codificato con hash a 128 bit MD5 del payload, viene utilizzato come controllo di integrità per garantire che il payload non sia stato alterato durante il trasferimento. |
x-amz-checksum-crc32 |
Stringa | Questa intestazione è il checksum Base64 codificato a 32 bit CRC32 dell'oggetto. |
x-amz-checksum-crc32c |
Stringa | Questa intestazione è il checksum Base64 codificato a 32 bit CRC32C dell'oggetto. |
x-amz-checksum-crc64nvme |
Stringa | Questa intestazione è il checksum Base64 codificato a 64 bit CRC64NVME dell'oggetto. Il checksum di CRC64NVME è sempre un checksum completo dell'oggetto. |
x-amz-checksum-sha1 |
Stringa | Questa intestazione è il digest Base64 codificato a 160 bit SHA1 dell'oggetto. |
x-amz-checksum-sha256 |
Stringa | Questa intestazione è il digest Base64 codificato a 256 bit SHA256 dell'oggetto. |
<RestoreRequest>
<Days>{integer}</Days>
<GlacierJobParameters>
<Tier>Bulk</Tier>
</GlacierJobParameters>
</RestoreRequest>
Richiesta di esempio
POST /apiary/queenbee?restore HTTP/1.1
Authorization: {authorization-string}
Content-Type: text/plain
Content-MD5: rgRRGfd/OytcM7O5gIaQ==
Content-Length: 305
Host: s3.us.cloud-object-storage.appdomain.cloud
Richiesta di esempio
POST /apiary/queenbee?restore HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-MD5: rgRRGfd/OytcM7O5gIaQ==
Content-Length: 305
Host: s3.us.cloud-object-storage.appdomain.cloud
<RestoreRequest>
<Days>3</Days>
<GlacierJobParameters>
<Tier>Bulk</Tier>
</GlacierJobParameters>
</RestoreRequest>
Risposta di esempio
HTTP/1.1 202 Accepted
Date: Thu, 16 Mar 2017 22:07:48 GMT
X-Clv-Request-Id: 06d67542-6a3f-4616-be25-fc4dbdf242ad
Accept-Ranges: bytes
Server: Cleversafe/3.9.1.114
X-Clv-S3-Version: 2.5
Aggiornamento dei metadati
Esistono due modi per aggiornare i metadati in un oggetto esistente:
- Una richiesta
PUTcon i nuovi metadati e il contenuto dell'oggetto originale - L'esecuzione di una richiesta
COPYcon i nuovi metadati che specifica l'oggetto originale come origine della copia
Tutti i metadati devono avere x-amz-meta- come prefisso
Utilizzo di PUT per aggiornare i metadati
La PUT richiesta richiede una copia dell'oggetto esistente poiché i contenuti vengono sovrascritti.
Sintassi
PUT https://{endpoint}/{bucket-name}/{object-name} # path style
PUT https://{bucket-name}.{endpoint}/{object-name} # virtual host style
Richiesta di esempio
PUT /apiary/queen-bee HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain; charset=utf-8
Host: s3.us.cloud-object-storage.appdomain.cloud
x-amz-meta-key1: value1
x-amz-meta-key2: value2
Content-Length: 533
The 'queen' bee is developed from larvae selected by worker bees and fed a
substance referred to as 'royal jelly' to accelerate sexual maturity. After a
short while the 'queen' is the mother of nearly every bee in the hive, and
the colony will fight fiercely to protect her.
Richiesta di esempio
PUT /apiary/queen-bee HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain; charset=utf-8
Content-MD5: M625BaNwd/OytcM7O5gIaQ==
Host: s3.us.cloud-object-storage.appdomain.cloud
x-amz-meta-key1: value1
x-amz-meta-key2: value2
Content-Length: 533
The 'queen' bee is developed from larvae selected by worker bees and fed a
substance referred to as 'royal jelly' to accelerate sexual maturity. After a
short while the 'queen' is the mother of nearly every bee in the hive, and
the colony will fight fiercely to protect her.
Risposta di esempio
HTTP/1.1 200 OK
Date: Thu, 25 Aug 2016 18:30:02 GMT
X-Clv-Request-Id: 9f0ca49a-ae13-4d2d-925b-117b157cf5c3
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.121
X-Clv-S3-Version: 2.5
x-amz-request-id: 9f0ca49a-ae13-4d2d-925b-117b157cf5c3
ETag: "3ca744fa96cb95e92081708887f63de5"
Content-Length: 0
Utilizzo di COPY per aggiornare i metadati
I dettagli completi sulla richiesta COPY sono qui.
Sintassi
PUT https://{endpoint}/{bucket-name}/{object-name} # path style
PUT https://{bucket-name}.{endpoint}/{object-name} # virtual host style
Richiesta di esempio
PUT /apiary/queen-bee HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain; charset=utf-8
Host: s3.us.cloud-object-storage.appdomain.cloud
x-amz-copy-source: /apiary/queen-bee
x-amz-metadata-directive: REPLACE
x-amz-meta-key1: value1
x-amz-meta-key2: value2
Richiesta di esempio
PUT /apiary/queen-bee HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
x-amz-copy-source: /apiary/queen-bee
x-amz-metadata-directive: REPLACE
x-amz-meta-key1: value1
x-amz-meta-key2: value2
Risposta di esempio
HTTP/1.1 200 OK
Date: Thu, 25 Aug 2016 18:30:02 GMT
X-Clv-Request-Id: 9f0ca49a-ae13-4d2d-925b-117b157cf5c3
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.121
X-Clv-S3-Version: 2.5
x-amz-request-id: 9f0ca49a-ae13-4d2d-925b-117b157cf5c3
ETag: "3ca744fa96cb95e92081708887f63de5"
Content-Length: 0
Passi successivi
Ulteriori informazioni sulle operazioni del bucket sono disponibili nella documentazione.