Operazioni per il bucket
Le moderne funzionalità di IBM Cloud® Object Storage sono comodamente disponibili tramite un'API RESTful. Le operazioni e i metodi utilizzati per interagire con i bucket (dove vengono memorizzati gli oggetti) sono qui documentati.
Per ulteriori informazioni sulle autorizzazioni e sull'accesso, vedi Autorizzazioni bucket.
Una nota sull'autenticazione HMAC (Access / Secret Key)
Quando esegui l'autenticazione alla tua istanza di IBM Cloud® Object Storage utilizzando credenziali HMAC, hai bisogno delle informazioni rappresentate nella Tabella 1 quando costruisci una firma HMAC.
| Chiave | Valore | Esempio |
|---|---|---|
| {access_key} | Tasto di accesso assegnato alle tue 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 |
Elenca i bucket
Una richiesta di tipo " GET " inviata all'endpoint "root" restituisce un elenco dei bucket associati all'istanza del servizio specificata. Per ulteriori informazioni sugli endpoint, vedi Endpoint e ubicazioni di archiviazione.
| Intestazione | Immettere | Obbligatorio? | Descrizione |
|---|---|---|---|
ibm-service-instance-id |
Stringa | Sì | Elenca i bucket creati in questa istanza del servizio. |
| Parametro di query | Valore | Obbligatorio? | Descrizione |
|---|---|---|---|
extended |
Nessuno | No | Fornisce i metadati " LocationConstraint " e " CreationTemplateId " nella scheda. |
Sintassi
GET https://{endpoint}/
Esempio di richiesta
GET / HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
ibm-service-instance-id: {ibm-service-instance-id}
Esempio di richiesta
GET / 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
Risposta di esempio
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Owner>
<ID>{account-id}</ID>
<DisplayName>{account-id}</DisplayName>
</Owner>
<Buckets>
<Bucket>
<Name>bucket-27200-lwx4cfvcue</Name>
<CreationDate>2016-08-18T14:21:36.593Z</CreationDate>
</Bucket>
<Bucket>
<Name>bucket-27590-drqmydpfdv</Name>
<CreationDate>2016-08-18T14:22:32.366Z</CreationDate>
</Bucket>
<Bucket>
<Name>bucket-27852-290jtb0n2y</Name>
<CreationDate>2016-08-18T14:23:03.141Z</CreationDate>
</Bucket>
<Bucket>
<Name>bucket-28731-k0o1gde2rm</Name>
<CreationDate>2016-08-18T14:25:09.599Z</CreationDate>
</Bucket>
</Buckets>
</ListAllMyBucketsResult>
Ottenimento di un elenco esteso
Sintassi
GET https://{endpoint}/?extended
Esempio di richiesta
GET /?extended HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
ibm-service-instance-id: {ibm-service-instance-id}
Esempio di richiesta
GET /?extended 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
Risposta di esempio
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Owner>
<ID>{account-id}</ID>
<DisplayName>{account-id}</DisplayName>
</Owner>
<IsTruncated>false</IsTruncated>
<MaxKeys>1000</MaxKeys>
<Prefix/>
<Marker/>
<Buckets>
<Bucket>
<Name>bucket-27200-lwx4cfvcue</Name>
<CreationDate>2016-08-18T14:21:36.593Z</CreationDate>
<LocationConstraint>us-south-standard</LocationConstraint>
</Bucket>
<Bucket>
<Name>bucket-27590-drqmydpfdv</Name>
<CreationDate>2016-08-18T14:22:32.366Z</CreationDate>
<LocationConstraint>us-standard</LocationConstraint>
</Bucket>
<Bucket>
<Name>bucket-27852-290jtb0n2y</Name>
<CreationDate>2016-08-18T14:23:03.141Z</CreationDate>
<LocationConstraint>eu-standard</LocationConstraint>
</Bucket>
<Bucket>
<Name>bucket-28731-k0o1gde2rm</Name>
<CreationDate>2016-08-18T14:25:09.599Z</CreationDate>
<LocationConstraint>us-cold</LocationConstraint>
</Bucket>
</Buckets>
</ListAllMyBucketsResult>
Crea un bucket
Una richiesta PUT che viene inviata alla root dell'endpoint e seguita da una stringa crea un bucket. Per ulteriori informazioni sugli endpoint, vedi Endpoint e ubicazioni di archiviazione.
I nomi bucket devono essere globalmente univoci e conformi a DNS. I nomi di lunghezza compresa tra 3 e 63 caratteri devono essere composti da lettere minuscole, numeri, punti (punti) e trattini (trattini). I nomi bucket devono iniziare e terminare
con una lettera minuscola o un numero. I nomi bucket non possono contenere punti o trattini consecutivi. Non sono ammessi nomi di bucket che assomiglino a indirizzi IP. Questa operazione non utilizza parametri di interrogazione specifici dell'operazione.
I nomi bucket devono essere univoci in quanto tutti i bucket nel cloud pubblico condividono uno spazio dei nomi globale. Questo requisito consente di accedere a un bucket senza dover fornire alcuna informazione relativa all'istanza del servizio
o all'account. Non è inoltre possibile creare un bucket con un nome che inizia con cosv1- o account- poiché questi prefissi sono riservati dal sistema.
| Intestazione | Immettere | Obbligatorio? | Descrizione |
|---|---|---|---|
ibm-service-instance-id |
Stringa | Sì | Questa intestazione fa riferimento all'istanza del servizio in cui verrà creato il bucket e alla quale potrà essere addebitato l'utilizzo dei dati. |
x-amz-bucket-object-lock-enabled |
Booleano | No | Specifica se si desidera abilitare il blocco oggetto sul nuovo bucket. Questa intestazione abilita automaticamente il controllo delle versioni. |
Quando si imposta il blocco oggetto su un nuovo bucket, assicurarsi che non vi siano errori tipografici nell'intestazione x-amz-bucket-object-lock-enabled. Se l'intestazione o il valore non sono scritti correttamente, il bucket
viene creato, ma il blocco e la versione dell'oggetto non sono abilitati.
Informazioni di identificazione personale (PII): quando si creano bucket o si aggiungono oggetti, non utilizzare nel nome del bucket o dell'oggetto alcuna informazione che possa identificare un utente (persona fisica) tramite nome, ubicazione o qualsiasi altro mezzo.
Sintassi
PUT https://{endpoint}/{bucket-name} # path style
PUT https://{bucket-name}.{endpoint} # virtual host style
Esempio di richiesta
Il seguente esempio crea un bucket denominato 'images'.
PUT /images HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
ibm-service-instance-id: {ibm-service-instance-id}
Esempio di richiesta
PUT /images 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
Risposta di esempio
HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:45:25 GMT
X-Clv-Request-Id: dca204eb-72b5-4e2a-a142-808d2a5c2a87
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.115
X-Clv-S3-Version: 2.5
x-amz-request-id: dca204eb-72b5-4e2a-a142-808d2a5c2a87
Content-Length: 0
Crea un bucket con una classe di archiviazione differente
Per creare un bucket con una classe di archiviazione diversa, inviare un blocco XML che specifichi una configurazione del bucket con un’ LocationConstraint e pari a {provisioning code} nel corpo di una richiesta PUT indirizzata a un endpoint del bucket. Per ulteriori informazioni sugli endpoint, vedi Endpoint e ubicazioni di archiviazione. Si applica il bucket standard
regole di denominazione. Questa operazione non utilizza parametri di interrogazione specifici dell'operazione.
| | Intestazione | Immettere | Descrizione | |--------------------------|--------|--------------------------------------------------------------------------------------------------------------------- | ibm-service-instance-id |
Stringa | Questa intestazione fa riferimento all'istanza del servizio in cui verrà creato il bucket e alla quale potrà essere addebitato l'utilizzo dei dati. |
Sintassi
PUT https://{endpoint}/{bucket-name} # path style
PUT https://{bucket-name}.{endpoint} # virtual host style
Il corpo della richiesta deve contenere un blocco XML con il seguente schema:
| Elemento | Immettere | Elemento secondario | Predecessore | Vincolo |
|---|---|---|---|---|
CreateBucketConfiguration |
Container | LocationConstraint |
|
|
LocationConstraint |
Stringa |
|
CreateBucketConfiguration |
Codice di posizione valido |
<CreateBucketConfiguration>
<LocationConstraint>us-vault</LocationConstraint>
</CreateBucketConfiguration>
È possibile che si faccia riferimento a un elenco di codici di provisioning validi per LocationConstraint nella guida alle classi di archiviazione.
Esempio di richiesta
Il seguente esempio crea un bucket denominato 'vault-images'.
PUT /vault-images HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
ibm-service-instance-id: {ibm-service-instance-id}
Content-Length: 110
Esempio di richiesta
PUT /vault-images 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
<CreateBucketConfiguration>
<LocationConstraint>us-vault</LocationConstraint>
</CreateBucketConfiguration>
Risposta di esempio
HTTP/1.1 200 OK
Date: Fri, 17 Mar 2017 17:52:17 GMT
X-Clv-Request-Id: b6483b2c-24ae-488a-884c-db1a93b9a9a6
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.115
X-Clv-S3-Version: 2.5
Content-Length: 0
Crea un bucket con chiavi di crittografia gestite (SSE-KP) di Key Protect o Hyper Protect Crypto Services
Per creare un bucket in cui le chiavi di crittografia sono gestite da Key Protect o Hyper Protect Crypto Services, è necessario avere accesso a un'istanza del servizio Key Protect o Hyper Protect Crypto Services attiva. Questa operazione non utilizza parametri di interrogazione specifici dell'operazione.
Per ulteriori informazioni sull'utilizzo di Key Protect per la gestione delle chiavi di crittografia, consultare la documentazione disponibile all'indirizzo Key Protect.
Per ulteriori informazioni su Hyper Protect Crypto Services, vedi la documentazione.
La crittografia gestita per un bucket Cross Region deve utilizzare una chiave root proveniente da un'istanza Key Protect nella posizione ad alta disponibilità più vicina
(us-south o jp-tok).
| Intestazione | Immettere | Descrizione |
|---|---|---|
ibm-service-instance-id |
Stringa | Questa intestazione fa riferimento all'istanza del servizio in cui verrà creato il bucket e alla quale potrà essere addebitato l'utilizzo dei dati. |
ibm-sse-kp-encryption-algorithm |
Stringa | Questa intestazione viene utilizzata per specificare l'algoritmo e la dimensione della chiave da utilizzare con la chiave di crittografia memorizzata tramite Key Protect. Questo valore deve essere impostato sulla stringa AES256. |
ibm-sse-kp-customer-root-key-crn |
Stringa | Questa intestazione serve a indicare la chiave radice specifica utilizzata da Key Protect o Hyper Protect Crypto Services per crittografare questo bucket. Questo valore deve essere il CRN completo della chiave root. |
Sintassi
PUT https://{endpoint}/{bucket-name} # path style
PUT https://{bucket-name}.{endpoint} # virtual host style
Esempio di richiesta
Il seguito esempio crea un bucket denominato 'secure-files'.
PUT /secure-files HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us-south.objectstorage.s3.us-south.cloud-object-storage.appdomain.cloud.net
ibm-service-instance-id: {ibm-service-instance-id}
ibm-sse-kp-encryption-algorithm: "AES256"
ibm-sse-kp-customer-root-key-crn: {customer-root-key-id}
Esempio di richiesta
PUT /secure-files 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
ibm-sse-kp-encryption-algorithm: "AES256"
ibm-sse-kp-customer-root-key-crn: {customer-root-key-id}
Risposta di esempio
HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:45:25 GMT
X-Clv-Request-Id: dca204eb-72b5-4e2a-a142-808d2a5c2a87
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.115
X-Clv-S3-Version: 2.5
x-amz-request-id: dca204eb-72b5-4e2a-a142-808d2a5c2a87
Content-Length: 0
Richiama le intestazioni di un bucket
Un'operazione " HEAD " eseguita su un bucket restituisce le intestazioni relative a quel bucket.
Le richieste HEAD non restituiscono un corpo e quindi non possono restituire messaggi di errore specifici come NoSuchBucket, solo NotFound.
Sintassi
HEAD https://{endpoint}/{bucket-name} # path style
HEAD https://{bucket-name}.{endpoint} # virtual host style
Esempio di richiesta
Il seguente esempio recupera le intestazioni per il bucket 'images'.
HEAD /images HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization:Bearer {token}
Esempio di richiesta
HEAD /images 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
Risposta di esempio
HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:46:35 GMT
X-Clv-Request-Id: 0c2832e3-3c51-4ea6-96a3-cd8482aca08a
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.115
X-Clv-S3-Version: 2.5
x-amz-request-id: 0c2832e3-3c51-4ea6-96a3-cd8482aca08a
Content-Length: 0
Esempio di richiesta
HEAD Le richieste relative ai bucket con crittografia “ Key Protect ” restituiscono intestazioni aggiuntive.
HEAD /secure-files HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization:Bearer {token}
Esempio di richiesta
HEAD /secure-files 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
Risposta di esempio
HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:46:35 GMT
X-Clv-Request-Id: 0c2832e3-3c51-4ea6-96a3-cd8482aca08a
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.115
X-Clv-S3-Version: 2.5
x-amz-request-id: 0c2832e3-3c51-4ea6-96a3-cd8482aca08a
Content-Length: 0
ibm-sse-kp-enabled: True
ibm-sse-kp-crk-id: {customer-root-key-id}
Elenca gli oggetti in un bucket specifico (Versione 2)
Una richiesta di tipo " GET " indirizzata a un bucket restituisce un elenco di oggetti, limitato a 1.000 alla volta e restituito in ordine non lessicografico. Il valore " StorageClass " restituito
nella risposta è un valore predefinito, poiché le operazioni relative alla classe di archiviazione non sono implementate in Object Storage. Questa operazione non utilizza intestazioni o elementi payload specifici dell'operazione.
Sintassi
GET https://{endpoint}/{bucket-name}?list-type=2 # path style
GET https://{bucket-name}.{endpoint}?list-type=2 # virtual host style
Parametri di query facoltativi
| Nome | Immettere | Descrizione |
|---|---|---|
list-type |
Stringa | Indica la versione 2 dell'API e il valore deve essere 2. |
prefix |
Stringa | Limita la risposta ai nomi degli oggetti che iniziano con prefix. |
delimiter |
Stringa | Raggruppa gli oggetti tra prefix e delimiter. |
encoding-type |
Stringa | Se in un nome oggetto vengono utilizzati caratteri unicode non supportati da XML, questo parametro può essere impostato su url per codificare correttamente la risposta. |
max-keys |
Stringa | Limita il numero di oggetti da visualizzare nella risposta. Il valore predefinito e massimo è 1.000. |
fetch-owner |
Stringa | La versione 2 dell'API non include le informazioni Owner per impostazione predefinita. Impostare questo parametro su “ true ” se si desidera che nella risposta siano incluse le informazioni relative a “ Owner ”. |
continuation-token |
Stringa | Specifica l'insieme di oggetti successivo che deve essere restituito quando viene troncata la risposta (l'elemento IsTruncated restituisce true).La tua risposta iniziale include l'elemento NextContinuationToken .
Utilizza questo token nella risposta successiva come il valore per continuation-token. |
start-after |
Stringa | Restituisce i nomi chiave dopo un oggetto chiave specifico. Questo parametro è valido solo nella richiesta iniziale. Se nella tua richiesta viene incluso un parametro continuation-token, questo parametro viene ignorato. |
Richiesta di esempio (semplice)
Questa richiesta elenca gli oggetti all'interno del bucket "apiary".
GET /apiary?list-type=2 HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: Bearer {token}
Richiesta di esempio (semplice)
GET /apiary?list-type=2 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
Risposta di esempio (semplice)
HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:36:24 GMT
X-Clv-Request-Id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Accept-Ranges: bytes
Server: Cleversafe/3.13.3.57
X-Clv-S3-Version: 2.5
x-amz-request-id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Content-Type: application/xml
Content-Length: 814
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Name>apiary</Name>
<Prefix/>
<KeyCount>3</KeyCount>
<MaxKeys>1000</MaxKeys>
<Delimiter/>
<IsTruncated>false</IsTruncated>
<Contents>
<Key>drone-bee</Key>
<LastModified>2016-08-25T17:38:38.549Z</LastModified>
<ETag>"0cbc6611f5540bd0809a388dc95a615b"</ETag>
<ChecksumAlgorithm>CRC64NVME</ChecksumAlgorithm>
<ChecksumType>FULL_OBJECT</ChecksumType>
<Size>4</Size>
<StorageClass>STANDARD</StorageClass>
</Contents>
<Contents>
<Key>soldier-bee</Key>
<LastModified>2016-08-25T17:49:06.006Z</LastModified>
<ETag>"37d4c94839ee181a2224d6242176c4b5"</ETag>
<ChecksumAlgorithm>CRC64NVME</ChecksumAlgorithm>
<ChecksumType>FULL_OBJECT</ChecksumType>
<Size>11</Size>
<StorageClass>STANDARD</StorageClass>
</Contents>
<Contents>
<Key>worker-bee</Key>
<LastModified>2016-08-25T17:46:53.288Z</LastModified>
<ETag>"d34d8aada2996fc42e6948b926513907"</ETag>
<ChecksumAlgorithm>CRC64NVME</ChecksumAlgorithm>
<ChecksumType>FULL_OBJECT</ChecksumType>
<Size>467</Size>
<StorageClass>STANDARD</StorageClass>
</Contents>
</ListBucketResult>
Richiesta di esempio (parametro max-keys)
Questa richiesta elenca gli oggetti all'interno del bucket "apiary" con un numero massimo di chiavi restituito impostato su 1.
GET /apiary?list-type=2&max-keys=1 HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: Bearer {token}
Richiesta di esempio (parametro max-keys)
GET /apiary?list-type=2&max-keys=1 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
Risposta di esempio (Risposta troncata)
HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:36:24 GMT
X-Clv-Request-Id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Accept-Ranges: bytes
Server: Cleversafe/3.13.3.57
X-Clv-S3-Version: 2.5
x-amz-request-id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Content-Type: application/xml
Content-Length: 598
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Name>apiary</Name>
<Prefix/>
<NextContinuationToken>1dPe45g5uuxjyASPegLq80sQsZKL5OB2by4Iz_7YGR5NjiOENBPZXqvKJN6_PgKGVzZYTlws7qqdWaMklzb8HX2iDxxl72ane3rUFQrvNMeIih49MZ4APUjrAuYI83KxSMmfKHGZyKallFkD5N6PwKg</NextContinuationToken>
<KeyCount>1</KeyCount>
<MaxKeys>1</MaxKeys>
<Delimiter/>
<IsTruncated>true</IsTruncated>
<Contents>
<Key>drone-bee</Key>
<LastModified>2016-08-25T17:38:38.549Z</LastModified>
<ETag>"0cbc6611f5540bd0809a388dc95a615b"</ETag>
<ChecksumAlgorithm>CRC64NVME</ChecksumAlgorithm>
<ChecksumType>FULL_OBJECT</ChecksumType>
<Size>4</Size>
<StorageClass>STANDARD</StorageClass>
</Contents>
</ListBucketResult>
Richiesta di esempio (parametro continuation-token)
Questa richiesta elenca gli oggetti all'interno del bucket "apiary" con un continuation-token specificato.
GET /apiary?list-type=2&max-keys=1&continuation-token=1dPe45g5uuxjyASPegLq80sQsZKL5OB2by4Iz_7YGR5NjiOENBPZXqvKJN6_PgKGVzZYTlws7qqdWaMklzb8HX2iDxxl72ane3rUFQrvNMeIih49MZ4APUjrAuYI83KxSMmfKHGZyKallFkD5N6PwKg HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: Bearer {token}
Richiesta di esempio (parametro "continuation-token")
GET /apiary?list-type=2&max-keys=1&continuation-token=1dPe45g5uuxjyASPegLq80sQsZKL5OB2by4Iz_7YGR5NjiOENBPZXqvKJN6_PgKGVzZYTlws7qqdWaMklzb8HX2iDxxl72ane3rUFQrvNMeIih49MZ4APUjrAuYI83KxSMmfKHGZyKallFkD5N6PwKg 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
Risposta di esempio (Risposta troncata, parametro continuation-token)
HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:36:24 GMT
X-Clv-Request-Id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Accept-Ranges: bytes
Server: Cleversafe/3.13.3.57
X-Clv-S3-Version: 2.5
x-amz-request-id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Content-Type: application/xml
Content-Length: 604
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Name>apiary</Name>
<Prefix/>
<ContinuationToken>1dPe45g5uuxjyASPegLq80sQsZKL5OB2by4Iz_7YGR5NjiOENBPZXqvKJN6_PgKGVzZYTlws7qqdWaMklzb8HX2iDxxl72ane3rUFQrvNMeIih49MZ4APUjrAuYI83KxSMmfKHGZyKallFkD5N6PwKg</ContinuationToken>
<NextContinuationToken>1a8j20CqowRrM4epIQ7fTBuyPZWZUeA8Epog16wYu9KhAPNoYkWQYhGURsIQbll1lP7c-OO-V5Vyzu6mogiakC4NSwlK4LyRDdHQgY-yPH4wMB76MfQR61VyxI4TJLxIWTPSZA0nmQQWcuV2mE4jiDA</NextContinuationToken>
<KeyCount>1</KeyCount>
<MaxKeys>1</MaxKeys>
<Delimiter/>
<IsTruncated>true</IsTruncated>
<Contents>
<Key>soldier-bee</Key>
<LastModified>2016-08-25T17:49:06.006Z</LastModified>
<ETag>"37d4c94839ee181a2224d6242176c4b5"</ETag>
<ChecksumAlgorithm>CRC64NVME</ChecksumAlgorithm>
<ChecksumType>FULL_OBJECT</ChecksumType>
<Size>11</Size>
<StorageClass>STANDARD</StorageClass>
</Contents>
</ListBucketResult>
Elenca gli oggetti in un bucket specifico (funzionalità obsoleta)
Questa API è inclusa per compatibilità con una versione precedente. Vedi Versione 2 per il metodo di richiamo degli oggetti consigliato in un bucket.
Una richiesta di tipo " GET " indirizzata a un bucket restituisce un elenco di oggetti, limitato a 1.000 alla volta e restituito in ordine non lessicografico. Il valore " StorageClass " restituito
nella risposta è un valore predefinito, poiché le operazioni relative alla classe di archiviazione non sono implementate in Object Storage. Questa operazione non utilizza intestazioni o elementi payload specifici dell'operazione.
Sintassi
GET https://{endpoint}/{bucket-name} # path style
GET https://{bucket-name}.{endpoint} # virtual host style
Parametri di query facoltativi per il metodo dell'oggetto elenco
| Nome | Immettere | Descrizione |
|---|---|---|
prefix |
Stringa | Limita la risposta ai nomi degli oggetti che iniziano con prefix. |
delimiter |
Stringa | Raggruppa gli oggetti tra prefix e delimiter. |
encoding-type |
Stringa | Se in un nome oggetto vengono utilizzati caratteri unicode non supportati da XML, questo parametro può essere impostato su url per codificare correttamente la risposta. |
max-keys |
Stringa | Limita il numero di oggetti da visualizzare nella risposta. Il valore predefinito e massimo è 1.000. |
marker |
Stringa | Specifica l'oggetto da cui deve iniziare l'elenco, secondo l'ordine binario di UTF-8. |
Esempio di richiesta
Questa richiesta elenca gli oggetti all'interno del bucket "apiary".
GET /apiary HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: Bearer {token}
Esempio di richiesta
GET /apiary 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
Risposta di esempio
HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:36:24 GMT
X-Clv-Request-Id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.115
X-Clv-S3-Version: 2.5
x-amz-request-id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Content-Type: application/xml
Content-Length: 909
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Name>apiary</Name>
<Prefix/>
<Marker/>
<MaxKeys>1000</MaxKeys>
<Delimiter/>
<IsTruncated>false</IsTruncated>
<Contents>
<Key>drone-bee</Key>
<LastModified>2016-08-25T17:38:38.549Z</LastModified>
<ETag>"0cbc6611f5540bd0809a388dc95a615b"</ETag>
<ChecksumAlgorithm>CRC64NVME</ChecksumAlgorithm>
<ChecksumType>FULL_OBJECT</ChecksumType>
<Size>4</Size>
<Owner>
<ID>{account-id}</ID>
<DisplayName>{account-id}</DisplayName>
</Owner>
<StorageClass>STANDARD</StorageClass>
</Contents>
<Contents>
<Key>soldier-bee</Key>
<LastModified>2016-08-25T17:49:06.006Z</LastModified>
<ETag>"37d4c94839ee181a2224d6242176c4b5"</ETag>
<ChecksumAlgorithm>CRC64NVME</ChecksumAlgorithm>
<ChecksumType>FULL_OBJECT</ChecksumType>
<Size>11</Size>
<Owner>
<ID>{account-id}</ID>
<DisplayName>{account-id}</DisplayName>
</Owner>
<StorageClass>STANDARD</StorageClass>
</Contents>
<Contents>
<Key>worker-bee</Key>
<LastModified>2016-08-25T17:46:53.288Z</LastModified>
<ETag>"d34d8aada2996fc42e6948b926513907"</ETag>
<ChecksumAlgorithm>CRC64NVME</ChecksumAlgorithm>
<ChecksumType>FULL_OBJECT</ChecksumType>
<Size>467</Size>
<Owner>
<ID>{account-id}</ID>
<DisplayName>{account-id}</DisplayName>
</Owner>
<StorageClass>STANDARD</StorageClass>
</Contents>
</ListBucketResult>
Elimina un bucket
Una richiesta di tipo " DELETE " inviata a un bucket vuoto comporta l'eliminazione del bucket stesso. Il nome del bucket viene mantenuto in riserva dal sistema per 5 minuti dopo la cancellazione. Dopo 5 minuti, il nome
viene rilasciato per essere riutilizzato. Puoi eliminare solo i bucket vuoti.
Se l'istanza del servizio Object Storage viene eliminata, tutti i nomi bucket in tale istanza vengono tenuti riservati dal sistema per 7 giorni. Dopo 7 giorni, i nomi vengono rilasciati per il riutilizzo.
Sintassi
DELETE https://{endpoint}/{bucket-name} # path style
DELETE https://{bucket-name}.{endpoint} # virtual host style
Intestazioni facoltative
| Nome | Immettere | Descrizione |
|---|---|---|
aspera-ak-max-tries |
Stringa | Specifica per quante volte puoi tentare l'operazione di eliminazione. Il valore predefinito è 2. |
Esempio di richiesta
DELETE /apiary HTTP/1.1
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: Bearer {token}
Esempio di richiesta
DELETE /apiary 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
Il server risponde con 204 No Content.
Se per l'eliminazione viene richiesto un bucket non vuoto, il server risponde con 409 Conflict.
Risposta di esempio
<Error>
<Code>BucketNotEmpty</Code>
<Message>The bucket you tried to delete is not empty.</Message>
<Resource>/apiary/</Resource>
<RequestId>9d2bbc00-2827-4210-b40a-8107863f4386</RequestId>
<httpStatusCode>409</httpStatusCode>
</Error>
Configura blocco oggetto su bucket esistente
Una richiesta PUT indirizzata a un bucket vuoto con il parametro di query ?object-lock imposta una nuova configurazione di blocco oggetto su un bucket.
Sintassi
PUT https://{endpoint}/{bucket-name}?object-lock # path style
PUT https://{bucket-name}.{endpoint}?object-lock # virtual host style
La configurazione blocco oggetto viene fornita come XML nel corpo della richiesta. Le nuove richieste sovrascrivono tutte le regole di replica esistenti presenti nel bucket.
Una configurazione di blocco oggetto deve includere una regola.
| Intestazione | Immettere | Descrizione |
|---|---|---|
Content-MD5 |
Stringa | L'hash del payload, generato con l'algoritmo " Base64 " a 128 bit ( MD5 ), 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. |
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.
Il corpo della richiesta deve contenere un blocco XML con il seguente schema:
| Elemento | Immettere | Elemento secondario | Predecessore | Vincolo |
|---|---|---|---|---|
ObjectLockConfiguration |
Container | ObjectLockEnabled, Rule |
Nessuno | Limite 1. |
ObjectLockEnabled |
Stringa | Nessuno | ObjectLockConfiguration |
L'unico valore valido è ENABLED. |
Rule |
Container | DefaultRetention |
ObjectLockConfiguration |
Limite 1 |
DefaultRetention |
Container | Days, Mode, Years |
Rule |
Limite 1. |
Days |
Numero intero | Nessuno | DefaultRetention |
Il numero di giorni che si desidera specificare per il periodo di conservazione predefinito. Non può essere combinato con Years. |
Mode |
Stringa | Nessuno | DefaultRetention |
COMPLIANCE o GOVERNANCE. |
Years |
Numero intero | Nessuno | DefaultRetention |
Il numero di anni che si desidera specificare per il periodo di conservazione predefinito. Non può essere combinato con Days. |
Richiesta di esempio
Questa richiesta elenca gli oggetti all'interno del bucket "apiary".
GET /apiary HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: Bearer {token}
Risposta di esempio
HTTP/1.1 200 OK
Date: Wed, 24 Aug 2016 17:36:24 GMT
X-Clv-Request-Id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.115
X-Clv-S3-Version: 2.5
x-amz-request-id: 9f39ff2e-55d1-461b-a6f1-2d0b75138861
Content-Type: application/xml
Content-Length: 909
<ObjectLockConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<ObjectLockEnabled>ENABLED</ObjectLockEnabled>
<Rule>
<DefaultRetention>
<Days>30</Days>
<Mode>COMPLIANCE</Mode>
</DefaultRetention>
</Rule>
</ObjectLockConfiguration>
Elencare i caricamenti in più parti annullati o incompleti per un bucket
Una richiesta GET emessa per un bucket con i parametri appropriati richiama le informazioni sui caricamenti in più parti annullati o incompleti per un bucket.
Sintassi
GET https://{endpoint}/{bucket-name}?uploads= # path style
GET https://{bucket-name}.{endpoint}?uploads= # virtual host style
Parametri
| Nome | Immettere | Descrizione |
|---|---|---|
prefix |
Stringa | Limita la risposta ai nomi degli oggetti che iniziano con {prefix}. |
delimiter |
Stringa | Raggruppa gli oggetti tra prefix e delimiter. |
encoding-type |
Stringa | Se in un nome oggetto vengono utilizzati caratteri unicode non supportati da XML, questo parametro può essere impostato su url per codificare correttamente la risposta. |
max-uploads |
Numero intero | Limita il numero di oggetti da visualizzare nella risposta. Il valore predefinito e massimo è 1.000. |
key-marker |
Stringa | Specifica da dove deve iniziare l'elenco. |
upload-id-marker |
Stringa | Viene ignorato se non viene specificato key-marker ; in caso contrario, imposta un punto a partire dal quale iniziare a elencare le parti sopra upload-id-marker``. |
Esempio di richiesta
Il seguente esempio richiama tutti i caricamenti in più parti annullati e incompleti correnti.
GET /apiary?uploads= HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
Esempio di richiesta
GET /apiary?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}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Risposta di esempio (nessun caricamento in più parti in corso)
HTTP/1.1 200 OK
Date: Wed, 5 Oct 2016 15:22:27 GMT
X-Clv-Request-Id: 9fa96daa-9f37-42ee-ab79-0bcda049c671
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.129
X-Clv-S3-Version: 2.5
x-amz-request-id: 9fa96daa-9f37-42ee-ab79-0bcda049c671
Content-Type: application/xml
Content-Length: 374
<ListMultipartUploadsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Bucket>apiary</Bucket>
<KeyMarker/>
<UploadIdMarker/>
<NextKeyMarker>multipart-object-123</NextKeyMarker>
<NextUploadIdMarker>0000015a-df89-51d0-2790-dee1ac994053</NextUploadIdMarker>
<MaxUploads>1000</MaxUploads>
<IsTruncated>false</IsTruncated>
<Upload>
<Key>file</Key>
<UploadId>0000015a-d92a-bc4a-c312-8c1c2a0e89db</UploadId>
<Initiator>
<ID>d4d11b981e6e489486a945d640d41c4d</ID>
<DisplayName>d4d11b981e6e489486a945d640d41c4d</DisplayName>
</Initiator>
<Owner>
<ID>d4d11b981e6e489486a945d640d41c4d</ID>
<DisplayName>d4d11b981e6e489486a945d640d41c4d</DisplayName>
</Owner>
<StorageClass>STANDARD</StorageClass>
<Initiated>2017-03-16T22:09:01.002Z</Initiated>
</Upload>
<Upload>
<Key>multipart-object-123</Key>
<UploadId>0000015a-df89-51d0-2790-dee1ac994053</UploadId>
<Initiator>
<ID>d4d11b981e6e489486a945d640d41c4d</ID>
<DisplayName>d4d11b981e6e489486a945d640d41c4d</DisplayName>
</Initiator>
<Owner>
<ID>d4d11b981e6e489486a945d640d41c4d</ID>
<DisplayName>d4d11b981e6e489486a945d640d41c4d</DisplayName>
</Owner>
<StorageClass>STANDARD</StorageClass>
<Initiated>2017-03-18T03:50:02.960Z</Initiated>
</Upload>
</ListMultipartUploadsResult>
Elenca qualsiasi configurazione CORS (Cross-Origin Resource Sharing) per un bucket
Una richiesta GET emessa per un bucket con i parametri appropriati richiama le informazioni sulla configurazione CORS (Cross-Origin Resource Sharing) per un bucket.
Sintassi
GET https://{endpoint}/{bucket-name}?cors= # path style
GET https://{bucket-name}.{endpoint}?cors= # virtual host style
Esempio di richiesta
L'esempio seguente illustra una configurazione di CORS sul bucket "apiary".
GET /apiary?cors= HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
Esempio di richiesta
GET /apiary?cors= 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
Risposta di esempio n. CORS set di configurazione
HTTP/1.1 200 OK
Date: Wed, 5 Oct 2016 15:20:30 GMT
X-Clv-Request-Id: 0b69bce1-8420-4f93-a04a-35d7542799e6
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.129
X-Clv-S3-Version: 2.5
x-amz-request-id: 0b69bce1-8420-4f93-a04a-35d7542799e6
Content-Type: application/xml
Content-Length: 123
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedOrigin>http://www.ibm.com</AllowedOrigin>
</CORSRule>
</CORSConfiguration>
Crea una configurazione CORS (Cross-Origin Resource Sharing) per un bucket
Una richiesta PUT emessa per un bucket con i parametri appropriati crea o sostituisce una configurazione CORS (Cross-Origin Resource Sharing) per un bucket.
Sintassi
PUT https://{endpoint}/{bucket-name}?cors= # path style
PUT https://{bucket-name}.{endpoint}?cors= # 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 |
|---|---|---|---|---|
CORSConfiguration |
Container | CORSRule |
|
|
CORSRule |
Container | AllowedOrigin, AllowedMethod |
Elimina |
|
AllowedOrigin |
Stringa |
|
CORSRule |
Stringa di origine valida |
AllowedMethod |
Stringa |
|
CORSRule |
Stringa metodo valida |
| Intestazione | Immettere | Descrizione |
|---|---|---|
Content-MD5 |
Stringa | L'hash del payload, generato con l'algoritmo " MD5 " a 128 bit e codificato con l' base64, 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. |
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. Il seguente snippet mostra un modo per ottenere il contenuto dell'intestazione Content-MD5, che è la rappresentazione binaria di un hash base64-encoded MD5.
echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64
Esempio di richiesta
L'esempio seguente aggiunge una configurazione di tipo " CORS " che consente alle richieste provenienti da www.ibm.com di inviare richieste GET, PUT e POST al bucket.
PUT /apiary?cors= HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-MD5: M625BaNwd/OytcM7O5gIaQ==
Content-Length: 237
Esempio di richiesta
PUT /apiary?cors= 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
Content-MD5: M625BaNwd/OytcM7O5gIaQ==
Content-Length: 237
<CORSConfiguration>
<CORSRule>
<AllowedOrigin>http://www.ibm.com</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
</CORSRule>
</CORSConfiguration>
Risposta di esempio
HTTP/1.1 200 OK
Date: Wed, 5 Oct 2016 15:39:38 GMT
X-Clv-Request-Id: 7afca6d8-e209-4519-8f2c-1af3f1540b42
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.129
X-Clv-S3-Version: 2.5
x-amz-request-id: 7afca6d8-e209-4519-8f2c-1af3f1540b42
Content-Length: 0
Elimina qualsiasi configurazione CORS (Cross-Origin Resource Sharing) per un bucket
Una richiesta DELETE emessa per un bucket con i parametri appropriati crea o sostituisce una configurazione CORS (Cross-Origin Resource Sharing) per un bucket.
Sintassi
DELETE https://{endpoint}/{bucket-name}?cors= # path style
DELETE https://{bucket-name}.{endpoint}?cors= # virtual host style
Esempio di richiesta
L'esempio seguente elimina una configurazione " CORS " relativa a un bucket.
DELETE /apiary?cors= HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
Esempio di richiesta
DELETE /apiary?cors= 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
Il server risponde con 204 No Content.
Elenca il vincolo di ubicazione per un bucket
Una richiesta GET emessa per un bucket con il parametro appropriato richiama le informazioni sull'ubicazione di un bucket.
Sintassi
GET https://{endpoint}/{bucket-name}?location # path style
GET https://{bucket-name}.{endpoint}?location # virtual host style
Esempio di richiesta
Il seguente esempio richiama l'ubicazione del bucket "apiary".
GET /apiary?location= HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
Esempio di richiesta
GET /apiary?location= 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
Risposta di esempio
HTTP/1.1 200 OK
Date: Tue, 12 Jun 2018 21:10:57 GMT
X-Clv-Request-Id: 0e469546-3e43-4c6b-b814-5ad0db5b638f
Accept-Ranges: bytes
Server: Cleversafe/3.13.3.57
X-Clv-S3-Version: 2.5
x-amz-request-id: 0e469546-3e43-4c6b-b814-5ad0db5b638f
Content-Type: application/xml
Content-Length: 161
<LocationConstraint xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
us-south-standard
</LocationConstraint>
Crea la configurazione del ciclo di vita di un bucket
Un'operazione PUT utilizza il parametro di query lifecycle per configurare le impostazioni del ciclo di vita per il bucket. 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.
Il seguente snippet mostra un modo per ottenere il contenuto dell'intestazione Content-MD5, che è la rappresentazione binaria di un hash base64-encoded MD5.
Sintassi
PUT https://{endpoint}/{bucket-name}?lifecycle # path style
PUT https://{bucket-name}.{endpoint}?lifecycle # 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 |
|---|---|---|---|---|
LifecycleConfiguration |
Container | Rule |
Nessuno | Limite 1 |
Rule |
Container | ID, Status, Filter, Transition |
LifecycleConfiguration |
Limite 1 |
ID |
Stringa | Nessuno | Rule |
Deve essere composto da (a-z,A-Z,0-9) e dai seguenti simboli:! _ . * ' ( ) - |
Filter |
Stringa | Prefix |
Rule |
Deve contenere un elemento Prefix. |
Expiration |
Container | Days, Date, ExpiredObjectDeleteMarker |
Rule |
Limite 1 |
Prefix |
Stringa | Nessuno | Filter |
Se si utilizza una regola di transizione (archivio), il valore deve essere impostato su <Prefix/>. Questa limitazione non si applica alle regole di scadenza. |
Transition |
Container | Days, StorageClass |
Rule |
Limitare 1 regola di transizione e 1000 regole in totale. |
Days |
Numero interno non negativo | Nessuno | Transition |
Deve essere un valore uguale o maggiore di 0. |
Date |
Data | Nessuno | Transition |
Deve essere nel formato ISO 8601 e la data deve essere futura. |
StorageClass |
Stringa | Nessuno | Transition |
Deve essere impostato su GLACIER o ACCELERATED. |
ExpiredObjectDeleteMarker |
Booleano | Nessuno | Expiration |
Deve essere true o false. |
NoncurrentVersionExpiration |
Container | NoncurrentDays |
NoncurrentVersionExpiration |
Limite 1 |
NoncurrentDays |
numero intero positivo | Nessuno | Transition |
Deve essere un valore maggiore di 0. |
AbortIncompleteMultipartUpload |
Container | DaysAfterInitiation |
Rule |
Limite 1 |
DaysAfterInitiation |
Numero interno non negativo | Nessuno | AbortIncompleteMultipartUpload |
Deve essere un valore maggiore di 0. |
| Intestazione | Immettere | Descrizione |
|---|---|---|
Content-MD5 |
Stringa | L'hash del payload, generato con l'algoritmo " MD5 " a 128 bit e codificato con l' base64, 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. |
IBM Cloud® Object Storage IaaS Gli account (non IAM) non sono in grado di impostare la classe di archiviazione di transizione su ACCELERATED.
<LifecycleConfiguration>
<Rule>
<ID>{string}</ID>
<Status>Enabled</Status>
<Filter>
<Prefix/>
</Filter>
<Transition>
<Days>{integer}</Days>
<StorageClass>GLACIER</StorageClass>
</Transition>
</Rule>
</LifecycleConfiguration>
Il seguente frammento mostra un modo per ottenere il contenuto per quella particolare intestazione.
echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64
Esempio di richiesta
PUT /apiary?lifecycle HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: {authorization-string}
Content-Type: text/plain
Content-MD5: M625BaNwd/OytcM7O5gIaQ==
Content-Length: 305
Esempio di richiesta
PUT /apiary?lifecycle 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
Content-MD5: M625BaNwd/OytcM7O5gIaQ==
Content-Length: 305
Host: s3.us.cloud-object-storage.appdomain.cloud
<LifecycleConfiguration>
<Rule>
<ID>my-archive-policy</ID>
<Filter>
<Prefix/>
</Filter>
<Status>Enabled</Status>
<Transition>
<Days>20</Days>
<StorageClass>GLACIER</StorageClass>
</Transition>
</Rule>
</LifecycleConfiguration>
Il server risponde con 200 OK.
<LifecycleConfiguration>
<Rule>
<ID>{string}</ID>
<Status>Enabled</Status>
<Filter>
<Prefix/>
</Filter>
<Expiration>
<Days>{integer}</Days>
</Expiration>
</Rule>
</LifecycleConfiguration>
Il seguente frammento mostra un modo per ottenere il contenuto per quella particolare intestazione.
echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64
Esempio di richiesta
PUT /cit-test?lifecycle HTTP/1.1
Host: 192.168.35.22
Date: Fri, 28 Feb 2020 14:12:06 +0000
Authorization: AWS MOfXYiHQ9QTyD2ALoiOh:WrlFRE2KMmhutBf3CxIZoNLl/ko=
Content-MD5: To3JYtaVNR3+aGYtl1dlmw==
Content-Length: 321
<LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Rule>
<ID>ID1</ID>
<Status>Enabled</Status>
<Filter>
<Prefix/>
</Filter>
<Expiration>
<Days>100</Days>
</Expiration>
</Rule>
</LifecycleConfiguration>
Esempio di risposta Il server risponde con 200 OK.
We are completely uploaded and fine
HTTP/1.1 200 OK
Date: Fri, 28 Feb 2020 14:12:06 GMT
X-Clv-Request-Id: 587d909f-4939-41ef-8c16-80aea16a0587
Server: Cleversafe/3.14.9.53
X-Clv-S3-Version: 2.5
x-amz-request-id: 587d909f-4939-41ef-8c16-80aea16a0587
Content-Length: 0
Esempio di richiesta
PUT /{bucket-name}?lifecycle HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
ibm-service-instance-id: {ibm-service-instance-id}
Content-Length: 123
Esempio di richiesta
PUT /{bucket-name}?lifecycle 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
Content-Length: 123
Richiama la configurazione del ciclo di vita di un bucket
Un'operazione GET utilizza il parametro di query lifecycle per richiamare le impostazioni del ciclo di vita per il bucket.
Sintassi
GET https://{endpoint}/{bucket-name}?lifecycle # path style
GET https://{bucket-name}.{endpoint}?lifecycle # virtual host style
Esempio di richiesta
GET /apiary?lifecycle HTTP/1.1
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Authorization: {authorization-string}
Esempio di richiesta
GET /apiary?lifecycle 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
Risposta di esempio
<LifecycleConfiguration>
<Rule>
<ID>my-archive-policy</ID>
<Filter>
<Prefix/>
</Filter>
<Status>Enabled</Status>
<Transition>
<Days>20</Days>
<StorageClass>GLACIER</StorageClass>
</Transition>
</Rule>
</LifecycleConfiguration>
Esempio di richiesta
GET /cit_dump-log?lifecycle HTTP/1.1
Host: 192.168.35.22
User-Agent: curl/7.64.1
Accept: */*
Date: Fri, 28 Feb 2020 14:00:43 +0000
Authorization: AWS MOfXYiHQ9QTyD2ALoiOh:iKm2QNetyW740kylP6ja2pze3DM=
Content-MD5: 1B2M2Y8AsgTpgAmY7PhCfg==
Risposta di esempio
HTTP/1.1 200 OK
Date: Fri, 28 Feb 2020 14:00:43 GMT
X-Clv-Request-Id: ecbf9294-284d-4169-b2cd-5d52b2450808
Server: Cleversafe/3.14.9.53
X-Clv-S3-Version: 2.5
Accept-Ranges: bytes
x-amz-request-id: ecbf9294-284d-4169-b2cd-5d52b2450808
Content-Type: application/xml
Content-Length: 276
<LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Rule>
<ID>ID1</ID>
<Status>Enabled</Status>
<Filter>
<Prefix/>
</Filter>
<Expiration>
<Days>270</Days>
</Expiration>
</Rule>
</LifecycleConfiguration>
Elimina i dati obsoleti con le regole di scadenza
Qualsiasi azione di scadenza per gli oggetti soggetti alla politica di conservazione Immutable Object Storage di un bucket viene posticipata fino a quando la politica di conservazione non viene più applicata.
Per ulteriori informazioni sull'utilizzo della configurazione del ciclo di vita per eliminare gli oggetti, consulta la documentazione.
Questa implementazione dell'operazione PUT utilizza il parametro di query lifecycle per configurare le impostazioni di ciclo di vita per il bucket. Questa operazione consente una singola definizione della politica del
ciclo di vita per un bucket. La politica è definita come un insieme di regole costituito dai seguenti parametri: ID, Status, Filter e Expiration.
| Intestazione | Immettere | Descrizione |
|---|---|---|
Content-MD5 |
Stringa | L'hash del payload, generato con l'algoritmo " Base64 " a 128 bit ( MD5 ), 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. |
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.
Il seguente snippet mostra un modo per ottenere il contenuto dell'intestazione Content-MD5, che è la rappresentazione binaria di un hash base64-encoded MD5.
echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64
Il corpo della richiesta deve contenere un blocco XML con il seguente schema:
| Elemento | Immettere | Elemento secondario | Predecessore | Vincolo |
|---|---|---|---|---|
LifecycleConfiguration |
Container | Rule |
Nessuno | Limite 1. |
Rule |
Container | ID, Status, Filter, Expiration |
LifecycleConfiguration |
Limite 1000. |
ID |
Stringa | Nessuno | Rule |
Deve essere composto da (a-z,A-Z,0-9) e dai simboli seguenti: ! _ . * ' ( ) - |
Filter |
Stringa | Prefix |
Rule |
Deve contenere un elemento Prefix |
Prefix |
Stringa | Nessuno | Filter |
La regola si applica a tutti gli oggetti con le chiavi che corrispondono a questo prefisso. |
Expiration |
Container | Days oppure Date |
Rule |
Limite 1. |
Days |
Numero interno non negativo | Nessuno | Expiration |
Deve essere un valore maggiore di 0. |
Date |
Data | Nessuno | Expiration |
Deve essere nel formato ISO 8601. |
Sintassi
PUT https://{endpoint}/{bucket}?lifecycle # path style
PUT https://{bucket}.{endpoint}?lifecycle # virtual host style
Esempio di richiesta
PUT /images?lifecycle HTTP/1.1
Host: s3.us.cloud-object-storage.appdomain.cloud
Date: Wed, 7 Feb 2018 17:50:00 GMT
Authorization: authorization string
Content-Type: text/plain
Content-MD5: M625BaNwd/OytcM7O5gIaQ==
Content-Length: 305
<LifecycleConfiguration>
<Rule>
<ID>id1</ID>
<Filter />
<Status>Enabled</Status>
<Expiration>
<Days>60</Days>
</Expiration>
</Rule>
</LifecycleConfiguration>
Elimina la configurazione del ciclo di vita per un bucket
Una richiesta DELETE emessa per un bucket con i parametri appropriati rimuove le configurazioni del ciclo di vita per un bucket.
Sintassi
DELETE https://{endpoint}/{bucket-name}?lifecycle # path style
DELETE https://{bucket-name}.{endpoint}?lifecycle # virtual host style
Esempio di richiesta
DELETE /apiary?lifecycle HTTP/1.1
Authorization: {authorization-string}
Host: s3.us.cloud-object-storage.appdomain.cloud
Esempio di richiesta
DELETE /apiary?lifecycle 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
Il server risponde con 204 No Content.
Esempio di richiesta
DELETE /cit-test?lifecycle HTTP/1.1
Host: 192.168.35.22
User-Agent: curl/7.64.1
Accept: */*
Date: Fri, 28 Feb 2020 14:16:47 +0000
Authorization: AWS MOfXYiHQ9QTyD2ALoiOh:n25GU28DiBgkNVgET5hKmLmp938=
Content-MD5: 1B2M2Y8AsgTpgAmY7PhCfg==
Risposta di esempio
HTTP/1.1 204 No Content
Date: Fri, 28 Feb 2020 14:16:47 GMT
X-Clv-Request-Id: 3e8bdf1e-b611-4b83-a404-e7d3e58e60b0
Server: Cleversafe/3.14.9.53
X-Clv-S3-Version: 2.5
x-amz-request-id: 3e8bdf1e-b611-4b83-a404-e7d3e58e60b0
Il server risponde con 204 No Content.
Aggiungi una politica di conservazione a un bucket esistente
Immutable Object Storage è disponibile solo in specifiche regioni; per i dettagli, vedi Servizi integrati. Il servizio richiede inoltre un piano tariffario Standard. Per i dettagli, vedi i prezzi.
Ulteriori informazioni su Immutable Object Storage sono disponibili nella documentazione.
I valori minimi e massimi supportati per le impostazioni del periodo di conservazione MinimumRetention, DefaultRetention e MaximumRetention vanno da un minimo di 0 giorni a un massimo di 365.243 giorni
(1.000 anni).
Questa operazione non utilizza parametri di query supplementari. L'intestazione Content-MD5 o l'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. Il seguente snippet mostra un modo per ottenere il contenuto dell'intestazione Content-MD5, che è
la rappresentazione binaria di un hash base64-encoded MD5.
Le politiche vengono applicate fino alla fine di un periodo di conservazione e non possono essere modificate fino alla scadenza del periodo di conservazione. Sebbene IBM Cloud® Object Storage utilizzi l'API S3 per la maggior parte delle operazioni, le API utilizzate per configurare i criteri di conservazione non sono le stesse dell'API S3, anche se alcuni termini potrebbero essere comuni. Leggi attentamente questa documentazione per impedire agli utenti della tua organizzazione di creare oggetti che non possono essere eliminati, nemmeno dagli amministratori dell' IBM Cloud.
echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64
Sintassi
PUT https://{endpoint}/{bucket-name}?protection= # path style
PUT https://{bucket-name}.{endpoint}?protection= # virtual host style
Il corpo della richiesta deve contenere un blocco XML con il seguente schema:
| Elemento | Immettere | Elemento secondario | Predecessore | Vincolo |
|---|---|---|---|---|
ProtectionConfiguration |
Container | Status, MinimumRetention, MaximumRetention, DefaultRetention |
|
|
Status |
Stringa |
|
ProtectionConfiguration |
Stringa di stato valido |
MinimumRetention |
Container | Days |
ProtectionConfiguration |
|
MaximumRetention |
Container | Days |
ProtectionConfiguration |
|
DefaultRetention |
Container | Days |
ProtectionConfiguration |
|
Days |
Numero intero |
|
MinimumRetention, MaximumRetention, DefaultRetention |
Numero intero di conservazione valido |
| Intestazione | Immettere | Descrizione |
|---|---|---|
Content-MD5 |
Stringa | L'hash del payload, generato con l'algoritmo " MD5 " a 128 bit e codificato con l' base64, 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. |
Esempio di richiesta
PUT /example-bucket?protection= HTTP/1.1
Authorization: {authorization-string}
x-amz-date: 20181011T190354Z
x-amz-content-sha256: 2938f51643d63c864fdbea618fe71b13579570a86f39da2837c922bae68d72df
Content-MD5: GQmpTNpruOyK6YrxHnpj7g==
Content-Type: text/plain
Host: 67.228.254.193
Content-Length: 299
<ProtectionConfiguration>
<Status>Retention</Status>
<MinimumRetention>
<Days>100</Days>
</MinimumRetention>
<MaximumRetention>
<Days>10000</Days>
</MaximumRetention>
<DefaultRetention>
<Days>2555</Days>
</DefaultRetention>
</ProtectionConfiguration>
Risposta di esempio
HTTP/1.1 200 OK
Date: Wed, 5 Oct 2018 15:39:38 GMT
X-Clv-Request-Id: 7afca6d8-e209-4519-8f2c-1af3f1540b42
Accept-Ranges: bytes
Server: Cleversafe/3.14.1
X-Clv-S3-Version: 2.5
x-amz-request-id: 7afca6d8-e209-4519-8f2c-1af3f1540b42
Content-Length: 0
Configurare un bucket per l'hosting del sito Web statico
Un'istruzione PUT eseguita su un bucket con i parametri corretti crea o sostituisce una configurazione del sito web statico per quel bucket.
Sintassi
PUT https://{endpoint}/{bucket-name}?website # path style
PUT https://{bucket-name}.{endpoint}?website # 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 |
|---|---|---|---|---|
WebsiteConfiguration |
Container | ErrorDocument, IndexDocument, RedirectAllRequestsTo, RoutingRule |
|
Obbligatorio |
ErrorDocument |
Container | Key |
WebsiteConfiguration |
|
Key |
Stringa |
|
ErrorDocument |
|
IndexDocument |
Container | Suffix |
WebsiteConfiguration |
|
Suffix |
Stringa |
|
IndexDocument |
|
RedirectAllRequestsTo |
Container | HostName, Protocol |
WebsiteConfiguration |
Se fornito, deve essere l'unico elemento specificato |
HostName |
Stringa |
|
RedirectAllRequestsTo |
|
Protocol |
Stringa |
|
RedirectAllRequestsTo |
|
RoutingRules |
Container | RoutingRule |
WebsiteConfiguration |
|
RoutingRule |
Container | Condition, Redirect |
RoutingRules |
|
Condition |
Container | HttpErrorCodeReturnedEquals, KeyPrefixEquals |
RoutingRule |
|
HttpErrorCodeReturnedEquals |
Stringa |
|
Condition |
|
KeyPrefixEquals |
Stringa |
|
Condition |
|
Redirect |
Container | HostName, HttpRedirectCode, Protocol, ReplaceKeyPrefixWith, ReplaceKeyWith |
RoutingRule |
|
HostName |
Stringa |
|
Redirect |
|
HttpRedirectCode |
Stringa |
|
Redirect |
|
Protocol |
Stringa |
|
Redirect |
|
ReplaceKeyPrefixWith |
Stringa |
|
Redirect |
|
ReplaceKeyWith |
Stringa |
|
Redirect |
|
Richiesta di esempio
Il seguente esempio aggiunge una configurazione del sito Web che serve un sito Web di base che cerca un file index.html in ogni prefisso. Ad esempio, una richiesta effettuata a /apiary/images/ serve il contenuto in
/apiary/images/index.html senza la necessità di specificare il file effettivo.
PUT /apiary?website HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 119
PUT /apiary?website 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
Content-Length: 119
<WebsiteConfiguration>
<IndexDocument>
<Suffix>index.html</Suffix>
</IndexDocument>
</WebsiteConfiguration>
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
Elimina qualsiasi configurazione del sito Web per un bucket
Una richiesta DELETE inviata a un bucket con i parametri appropriati rimuove la configurazione del sito web per un bucket.
Sintassi
DELETE https://{endpoint}/{bucket-name}?website # path style
DELETE https://{bucket-name}.{endpoint}?website # virtual host style
Esempio di richiesta
Il seguente esempio elimina una configurazione del sito Web per un bucket.
DELETE /apiary?website HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
Esempio di richiesta
DELETE /apiary?website 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
Il server risponde con 204 No Content.
Blocca gli ACL pubblici su un bucket
Una richiesta PUT inoltrata ad un bucket con i parametri appropriati impedisce l'aggiunta di ACL di accesso pubblici su un bucket. Può essere impostato per non eseguire le nuove richieste ACL o per ignorarle. BlockPublicAcls non influenza gli ACL esistenti, ma IgnorePublicAcls ignora gli ACL esistenti. Questa operazione non influisce sulle politiche di accesso pubblico IAM.
Sintassi
PUT https://{endpoint}/{bucket-name}?publicAccessBlock # path style
PUT https://{bucket-name}.{endpoint}?publicAccessBlock # 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 |
|---|---|---|---|---|
| PublicAccessBlockConfiguration | Container | BlockPublicAcls, IgnorePublicAcls |
|
Obbligatorio |
| BlockPublicAcls | Booleano |
|
PublicAccessBlockConfiguration |
|
| IgnorePublicAcls | Booleano |
|
PublicAccessBlockConfiguration |
|
Richiesta di esempio
PUT /apiary?publicAccessBlock HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 155
PUT /apiary?publicAccessBlock 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
Content-Length: 155
<PublicAccessBlockConfiguration>
<BlockPublicAcls>True</BlockPublicAcls>
<IgnorePublicAcls>True</IgnorePublicAcls>
</PublicAccessBlockConfiguration>
Risposta di esempio
HTTP/1.1 200 OK
Date: Mon, 02 Nov 2020 15:39:38 GMT
X-Clv-Request-Id: 7afca6d8-e209-4519-8f2c-1af3f1540b42
Accept-Ranges: bytes
Content-Length: 0
Controlla un blocco ACL pubblico per un bucket
Un GET emesso per un bucket con i parametri appropriati restituisce la configurazione del blocco ACL per un bucket.
Sintassi
GET https://{endpoint}/{bucket-name}?publicAccessBlock # path style
GET https://{bucket-name}.{endpoint}?publicAccessBlock # virtual host style
Esempio di richiesta
Il seguente esempio legge un blocco di accesso pubblico per un bucket.
GET /apiary?publicAccessBlock HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
Esempio di richiesta
GET /apiary?publicAccessBlock 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
HTTP/1.1 200 OK
Date: Mon, 02 Nov 2020 19:52:56 GMT
X-Clv-Request-Id: 7c9079b1-2833-4abc-ba10-466ef06725b2
Server: Cleversafe/3.15.2.31
X-Clv-S3-Version: 2.5
Accept-Ranges: bytes
Content-Type: application/xml
Content-Length: 248
<PublicAccessBlockConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<BlockPublicAcls>true</BlockPublicAcls>
<IgnorePublicAcls>true</IgnorePublicAcls>
</PublicAccessBlockConfiguration>
Elimina un blocco ACL pubblico da un bucket
Un DELETE emesso per un bucket con i corretti parametri rimuove il blocco ACL pubblico da un bucket.
Sintassi
DELETE https://{endpoint}/{bucket-name}?publicAccessBlock # path style
DELETE https://{bucket-name}.{endpoint}?publicAccessBlock # virtual host style
Esempio di richiesta
Il seguente esempio elimina un blocco ACL per un bucket.
DELETE /apiary?publicAccessBlock HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
Esempio di richiesta
DELETE /apiary?publicAccessBlock 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
Il server risponde con 204 No Content.
Operazioni dei criteri di backup
L'API Backup Policy di IBM Cloud® Object Storage fornisce operazioni per la creazione, la gestione e l'interazione con le politiche di backup. I criteri di backup definiscono le modalità di backup dei dati nei bucket nei vault di backup.
Per ulteriori informazioni sulle autorizzazioni e sull'accesso, vedere Autorizzazioni dei criteri di backup.
Crea una politica di backup
Una richiesta POST all'endpoint /buckets/{bucket}/backup_policies crea un nuovo criterio di backup per un bucket.
| Intestazione | Immettere | Obbligatorio? | Descrizione |
|---|---|---|---|
MD5 |
Stringa | No | MD5 hash del contenuto. Se fornito, l'hash della richiesta deve corrispondere. |
| Parametro del percorso | Immettere | Obbligatorio? | Descrizione |
|---|---|---|---|
bucket_name |
Stringa | Sì | Il nome del bucket a cui viene applicato il criterio di backup. |
Sintassi
POST https://{endpoint}/buckets/{bucket}/backup_policies
Corpo della richiesta
{
"policy_name": "myBackupPolicy",
"initial_retention": {
"delete_after_days": 10
},
"backup_type": "continuous",
"target_backup_vault_crn": "crn:v1:bluemix:public:cloud-object-storage:global:a1229395:1a0ec336-f391-4091-a6fb-5e084a4c56f4:backup-vault:backup-vault-name"
}
Richiesta di esempio
POST /buckets/myBucket/backup_policies HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
Host: config.cloud-object-storage.cloud.ibm.com
{
"initial_retention": {
"delete_after_days": 10
},
"policy_name": "myBackupPolicy",
"target_backup_vault_crn": "crn:v1:bluemix:public:cloud-object-storage:global:2de9d5b5:12b951c9-d4e1-61a4-518c-3acc2034ba30:backup-vault:l4pi16n8rt--ufqb7.r-fw2ziy",
"backup_type": "continuous"
}
Risposta di esempio
{
"policy_name": "myBackupPolicy",
"initial_retention": {
"delete_after_days": 10
},
"backup_type": "continuous",
"policy_id": "44d3dd41-d616-4d25-911a-9ef7fbf28aef",
"policy_status": "pending",
"target_backup_vault_crn": "crn:v1:bluemix:public:cloud-object-storage:global:a1229395:1a0ec336-f391-4091-a6fb-5e084a4c56f4:backup-vault:backup-vault-name"
}
Elenco dei criteri di backup
Una richiesta GET all'endpoint /buckets/{bucket}/backup_policies recupera tutti i criteri di backup per un bucket.
| Parametro del percorso | Immettere | Obbligatorio? | Descrizione |
|---|---|---|---|
bucket_name |
Stringa | Sì | Il nome del bucket per il quale elencare i criteri di backup. |
Sintassi
GET https://{endpoint}/buckets/{bucket}/backup_policies
Richiesta di esempio
GET /buckets/myBucket/backup_policies HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
Host: config.cloud-object-storage.cloud.ibm.com
Risposta di esempio
[
{
"policy_name": "myBackupPolicy",
"initial_retention": {
"delete_after_days": 10
},
"backup_type": "continuous",
"policy_id": "44d3dd41-d616-4d25-911a-9ef7fbf28aef",
"policy_status": "active",
"target_backup_vault_crn": "crn:v1:bluemix:public:cloud-object-storage:global:a1229395:8dfbcba4e6a740e3866020847e525436:backup-vault:backup-vault-name"
}
]
Ottenere i dettagli della politica di backup
Una richiesta GET all'endpoint /buckets/{bucket}/backup_policies/{policy_id} recupera i dettagli di uno specifico criterio di backup.
| Parametro del percorso | Immettere | Obbligatorio? | Descrizione |
|---|---|---|---|
bucket_name |
Stringa | Sì | Il nome del bucket. |
policy_id |
Stringa | Sì | L'ID della politica di backup. |
Sintassi
GET https://{endpoint}/buckets/{bucket}/backup_policies/{policy_id}
Richiesta di esempio
GET /buckets/myBucket/backup_policies/44d3dd41-d616-4d25-911a-9ef7fbf28aef HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
Host: config.cloud-object-storage.cloud.ibm.com
Risposta di esempio
{
"policy_name": "myBackupPolicy",
"backup_type": "continuous",
"policy_id": "44d3dd41-d616-4d25-911a-9ef7fbf28aef",
"policy_status": "active",
"target_backup_vault_crn": "crn:v1:bluemix:public:cloud-object-storage:global:a1229395:1a0ec336-f391-4091-a6fb-5e084a4c56f4:backup-vault:backup-vault-name",
"initial_retention": {
"delete_after_days": 10
}
}
Eliminare un criterio di backup
Una richiesta DELETE all'endpoint /buckets/{bucket}/backup_policies/{policy_id} elimina uno specifico criterio di backup.
| Parametro del percorso | Immettere | Obbligatorio? | Descrizione |
|---|---|---|---|
bucket_name |
Stringa | Sì | Il nome del bucket. |
policy_id |
Stringa | Sì | L'ID della politica di backup. |
Sintassi
DELETE https://{endpoint}/buckets/{bucket}/backup_policies/{policy_id}
Richiesta di esempio
DELETE /buckets/myBucket/backup_policies/44d3dd41-d616-4d25-911a-9ef7fbf28aef HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
Host: config.cloud-object-storage.cloud.ibm.com
Risposta di esempio
HTTP/1.1 204 No Content
Per ulteriori informazioni sulle operazioni dei criteri di backup, vedere Gestione del vault di backup.
Passi successivi
Per ulteriori informazioni, consultare Operazioni oggetto.