Archiviazione e accesso ai dati a freddo

IBM Cloud® Object Storage "Archivio" e "Accelerated Archive" sono opzioni a basso costo per i dati a cui si accede raramente. Puoi archiviare i dati eseguendone la transizione da uno qualsiasi dei livelli di archiviazione (Standard, Vault, Cold Vault e Flex) a un archivio offline a lungo termine oppure utilizzare l'opzione Cold Vault online. Con la nuova funzione "Accelerated Archive" è possibile accedere rapidamente ai dati inattivi con il ripristino in meno di due ore.

Questa funzione non è attualmente supportata in Object Storage per Satellite. Ulteriori informazioni.

I livelli Archivio e Archivio accelerato hanno una durata minima di archiviazione di 90 giorni. Gli oggetti eliminati prima di questo termine continueranno a subire spese di archiviazione per tutti i 90 giorni.

Archivio e Archivio accelerato hanno entrambi una dimensione minima degli oggetti per la fatturazione di 128KBs. Gli oggetti più piccoli possono comunque essere archiviati, ma saranno fatturati alla tariffa per le dimensioni dell'oggetto 128KB.

Gli oggetti scritti nel Vault o nel Cold Vault saranno fatturati per l'intera durata minima di archiviazione in tali livelli, anche se l'oggetto viene archiviato prima della durata minima.

Puoi archiviare gli oggetti utilizzando la console web, l'API REST e gli strumenti di terze parti che sono integrati con IBM Cloud Object Storage.

Per ulteriori informazioni sugli endpoint, vedi Endpoint e ubicazioni di archiviazione

Aggiungi o gestisci una politica di archiviazione in un bucket

Quando crei o modifichi una politica di archiviazione per un bucket, tieni in considerazione quanto segue:

  • Una politica di archiviazione può essere aggiunta a un nuovo bucket o a uno esistente in qualsiasi momento.
  • Una politica di archiviazione esistente può essere modificata o disabilitata.
  • Una politica di archiviazione appena aggiunta o modificata si applica ai nuovi oggetti caricati e non influisce su quelli esistenti.

Creare un bucket nella console dopo aver effettuato l'accesso e configurare il criterio di archiviazione.

Per archiviare immediatamente i nuovi oggetti caricati in un bucket, inserisci 0 giorni nella politica di archiviazione.

Archive è disponibile solo in determinate regioni. Per ulteriori dettagli, vedi Servizi integrati.

Ripristina un oggetto archiviato

Per poter accedere a un oggetto archiviato, devi ripristinarlo al livello di archiviazione originale. Quando ripristini un oggetto, puoi specificare il numero di giorni per il quale desideri che sia disponibile. Al termine del periodo specificato, la copia ripristinata viene eliminata.

Il processo di ripristino per "Accelerated Archive" richiede fino a 2 ore, mentre il processo di ripristino per Archive richiede fino a 12 ore.

I sottostati dell'oggetto archiviato sono:

  • Archiviato (Archived): un oggetto nello stato archiviato è stato spostato dal suo livello di archiviazione online (Standard, Vault, Cold Vault e Flex) al livello di archiviazione offline basato sulla politica di archiviazione nel bucket.
  • In fase di ripristino (Restoring): un oggetto nello stato in fase di ripristino è nel processo di creazione di una copia dallo stato archiviato al suo livello di archiviazione online originale.
  • Ripristinato (Restored): un oggetto nello stato ripristinato è una copia dell'oggetto archiviato che è stato ripristinato al suo livello di archiviazione online originale per un determinato periodo di tempo. Al termine del periodo, la copia dell'oggetto viene eliminata mentre l'oggetto archiviato viene conservato.

Ripristino di un oggetto utilizzando la CLI AWS

I seguenti esempi utilizzano le variabili di ambiente per maggiore chiarezza. Questi devono essere impostati sui valori desiderati, ad esempio $ENDPOINT deve essere impostato su https://s3.us.cloud-object-storage.appdomain.cloud, https://s3.eu-de.private.cloud-object-storage.appdomain.cloud o qualsiasi altro valore richiesto.

  1. Verifica stato oggetto: aws --endpoint-url $ENDPOINT s3api head-object --bucket $BUCKET --key $KEY La classe di memoria verrà visualizzata come ("StorageClass": "GLACIER")
  2. Ripristinare l'oggetto: aws --endpoint-url $ENDPOINT s3api restore-object ---bucket $BUCKET --key $KEY --restore-request '{"Days":25,"GlacierJobParameters":{"Tier":"Bulk"}}'
  3. Controllare lo stato: aws --endpoint-url $ENDPOINT s3api head-object --bucket $BUCKET --key $KEY

Limitazioni

Le politiche di archiviazione vengono implementate utilizzando un sottoinsieme dell'operazione API S3 PUT Bucket Lifecycle Configuration.

La funzionalità supportata include:

  • La specifica di una data o di un numero di giorni nel futuro quando gli oggetti passano a uno stato archiviato.
  • L'impostazione delle regole di scadenza per gli oggetti.

Le politiche che specificano una data nel passato potrebbero richiedere fino a pochi giorni per essere completate.

La funzionalità non supportata include:

  • Più regole di transizione per bucket.
  • Filtraggio degli oggetti da archiviare utilizzando un prefisso o una chiave oggetto.
  • Organizzazione in livelli tra le classi di archiviazione.

Gli utenti dell'infrastruttura classica (non IAM) non sono in grado di impostare la classe di archiviazione della transizione su ACCELERATED.

Utilizzo dell'API REST e degli SDK

Crea la configurazione del ciclo di vita di un bucket

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 determinato bucket. La politica viene definita come una regola composta dai seguenti parametri: ID, Status e Transition.

L'azione di transizione consente oggetti futuri scritti nel bucket in uno stato archiviato dopo un determinato periodo di tempo. Le modifiche alla politica del ciclo di vita per un bucket vengono applicate solo ai nuovi oggetti scritti in tale bucket.

Gli utenti Cloud IAM devono disporre almeno del ruolo di scrittore (Writer) per aggiungere una politica del ciclo di vita al bucket.

Gli utenti dell'infrastruttura classica devono disporre delle autorizzazioni di proprietario (Owner) ed essere in grado di creare i bucket nell'account di archiviazione per aggiungere una politica del ciclo di vita al bucket.

Questa operazione non utilizza parametri di query aggiuntivi specifici dell'operazione.

Intestazioni facoltative
Intestazione Immettere Descrizione
Content-MD5 Stringa L'hash base64 codificato a 128 bit di MD5 del payload, utilizzato come controllo di integrità per garantire che il payload non sia stato alterato durante il transito.
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
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 simboli seguenti: ! _ . * ' ( ) -
Filter Stringa Prefix Rule Deve contenere un elemento Prefix
Prefix Stringa Nessuno Filter Deve essere impostato su <Prefix/>.
Transition Container Days, StorageClass Rule Limitare 1 regola di transizione e un massimo di 1000 regole totali.
Days Numero interno non negativo Nessuno Transition Deve essere un valore uguale o maggiore di 0.
Date Data Nessuno Transistion Deve essere nel formato ISO 8601 e la data deve essere futura.
StorageClass Stringa Nessuno Transition GLACIER oppure ACCELERATED

Sintassi

PUT https://{endpoint}/{bucket}?lifecycle # path style
PUT https://{bucket}.{endpoint}?lifecycle # virtual host style
<LifecycleConfiguration>
	<Rule>
		<ID>{string}</ID>
		<Status>Enabled</Status>
		<Filter>
			<Prefix/>
		</Filter>
		<Transition>
			<Days>{integer}</Days>
			<StorageClass>{StorageClass}</StorageClass>
		</Transition>
	</Rule>
</LifecycleConfiguration>

Esempi

Richiesta di esempio

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: 1B2M2Y8AsgTpgAmY7PhCfg==
Content-Length: 305
<LifecycleConfiguration>
    <Rule>
        <ID>my-archive-policy</ID>
        <Filter>
			<Prefix/>
		</Filter>
        <Status>Enabled</Status>
        <Transition>
            <Days>20</Days>
            <StorageClass>ACCELERATED</StorageClass>
        </Transition>
    </Rule>
</LifecycleConfiguration>

Risposta di esempio

HTTP/1.1 200 OK
Date: Wed, 7 Feb 2018 17:51:00 GMT
Connection: close
var params = {
  Bucket: 'STRING_VALUE', /* required */
  LifecycleConfiguration: {
    Rules: [ /* required */
      {
        Status: 'Enabled', /* required */
        ID: 'STRING_VALUE',
        Filter: '', /* required */
        Prefix: '',
        Transitions: [
          {
            Date: DATE, /* required if Days not specified */
            Days: 0, /* required if Date not specified */
            StorageClass: 'STRING_VALUE' /* required */
          },
        ]
      },
    ]
  }
};

s3.putBucketLifecycleConfiguration(params, function(err, data) {
  if (err) console.log(err, err.stack); // an error occurred
  else     console.log(data);           // successful response
});
response = client.put_bucket_lifecycle_configuration(
    Bucket='string',
    LifecycleConfiguration={
        'Rules': [
            {
                'ID': 'string',
                'Status': 'Enabled',
                'Filter': '',
                'Prefix': '',
                'Transitions': [
                    {
                        'Date': datetime(2015, 1, 1),
                        'Days': 123,
                        'StorageClass': 'GLACIER'
                    },
                ]
            },
        ]
    }
)
public SetBucketLifecycleConfigurationRequest(String bucketName,
                                              BucketLifecycleConfiguration lifecycleConfiguration)

Riepilogo metodo

Metodo Descrizione
getBucketName() Richiama il nome del bucket di cui viene impostata la configurazione del ciclo di vita.
getLifecycleConfiguration() Richiama la nuova configurazione del ciclo di vita per il bucket specificato.
setBucketName(String bucketName) Imposta il nome del bucket di cui viene impostata la configurazione del ciclo di vita.
withBucketName(String bucketName) Imposta il nome del bucket di cui viene impostata la configurazione del ciclo di vita in modo che le chiamate aggiuntive al metodo possano essere concatenate tra loro.

Richiama la configurazione del ciclo di vita di un bucket

Questa implementazione dell'operazione GET utilizza il parametro di query lifecycle per richiamare le impostazioni del ciclo di vita per il bucket.

Gli utenti Cloud IAM devono disporre almeno del ruolo di lettore (Reader) per richiamare un ciclo di vita per un bucket.

Gli utenti dell'infrastruttura classica devono disporre almeno delle autorizzazioni di lettura (Read) per il bucket per richiamare una politica del ciclo di vita per un bucket.

Questa operazione non utilizza intestazioni, parametri di query o payload aggiuntivi specifici dell'operazione.

Sintassi

GET https://{endpoint}/{bucket}?lifecycle # path style
GET https://{bucket}.{endpoint}?lifecycle # virtual host style

Esempi

Richiesta di esempio

GET /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

Risposta di esempio

HTTP/1.1 200 OK
Date: Wed, 7 Feb 2018 17:51:00 GMT
Connection: close
<LifecycleConfiguration>
    <Rule>
        <ID>my-archive-policy</ID>
        <Filter />
        <Status>Enabled</Status>
        <Transition>
            <Days>20</Days>
            <StorageClass>GLACIER</StorageClass>
        </Transition>
    </Rule>
</LifecycleConfiguration>
var params = {
  Bucket: 'STRING_VALUE' /* required */
};
s3.getBucketLifecycleConfiguration(params, function(err, data) {
  if (err) console.log(err, err.stack); // an error occurred
  else     console.log(data);           // successful response
});
response = client.get_bucket_lifecycle_configuration(Bucket='string')
public GetBucketLifecycleConfigurationRequest(String bucketName)

Elimina la configurazione del ciclo di vita di un bucket

Questa implementazione dell'operazione DELETE utilizza il parametro di query lifecycle per rimuovere tutte le impostazioni del ciclo di vita per il bucket. Le transizioni definite dalle regole non verranno più eseguite per i nuovi oggetti.

Nota: le regole di transizione esistenti verranno conservate per gli oggetti che sono stati già scritti nel bucket prima dell'eliminazione delle regole.

Gli utenti Cloud IAM devono disporre almeno del ruolo di scrittore (Writer) per rimuovere una politica del ciclo di vita da un bucket.

Gli utenti dell'infrastruttura classica devono disporre almeno delle autorizzazioni di proprietario (Owner) per il bucket per rimuovere una politica del ciclo di vita da un bucket.

Questa operazione non utilizza intestazioni, parametri di query o payload aggiuntivi specifici dell'operazione.

Sintassi

DELETE https://{endpoint}/{bucket}?lifecycle # path style
DELETE https://{bucket}.{endpoint}?lifecycle # virtual host style

Esempi

Richiesta di esempio

DELETE /images?lifecycle HTTP/1.1
Host: s3.us.cloud-object-storage.appdomain.cloud
Date: Wed, 7 Feb 2018 18:50:00 GMT
Authorization: authorization string

Risposta di esempio

HTTP/1.1 204 No Content
Date: Wed, 7 Feb 2018 18:51:00 GMT
Connection: close
var params = {
  Bucket: 'STRING_VALUE' /* required */
};
s3.deleteBucketLifecycle(params, function(err, data) {
  if (err) console.log(err, err.stack); // an error occurred
  else     console.log(data);           // successful response
});
response = client.delete_bucket_lifecycle(Bucket='string')
public DeleteBucketLifecycleConfigurationRequest(String bucketName)

Ripristina temporaneamente un oggetto archiviato

Questa implementazione dell'operazione POST utilizza il parametro di query restore per richiedere il ripristino temporaneo di un oggetto archiviato. L'utente deve innanzitutto ripristinare un oggetto archiviato prima di scaricare o modificare l'oggetto. Quando ripristina un oggetto, l'utente deve specificare un periodo trascorso il quale la copia temporanea dell'oggetto verrà eliminata. L'oggetto conserva la classe di archiviazione del bucket.

Può verificarsi un ritardo fino a 12 ore prima che la copia di ripristino sia disponibile per l'accesso. Una richiesta HEAD può controllare se la copia ripristinata è disponibile.

Per ripristinare in modo permanente l'oggetto, l'utente deve copiare l'oggetto ripristinato in un bucket che non ha una configurazione attiva del ciclo di vita.

Gli utenti Cloud IAM devono disporre almeno del ruolo di scrittore (Writer) per ripristinare un oggetto.

Gli utenti dell'infrastruttura classica devono disporre almeno delle autorizzazioni di scrittore (Write) per il bucket e dell'autorizzazione di lettura (Read) per l'oggetto per ripristinarlo.

Questa operazione non utilizza parametri di query aggiuntivi specifici dell'operazione.

Intestazioni facoltative
Intestazione Immettere Descrizione
Content-MD5 Stringa L'hash base64 codificato a 128 bit di MD5 del payload, utilizzato come controllo di integrità per garantire che il payload non sia stato alterato durante il transito.
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.

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
Days 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 Tier RestoreRequest Nessuno
Tier 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.

Una risposta di esito positivo restituisce un codice 202 se l'oggetto è nello stato archiviato e un codice 200 se l'oggetto è già nello stato ripristinato. Se l'oggetto è già nello stato ripristinato e viene ricevuta una nuova richiesta di ripristino dell'oggetto, l'elemento Days aggiornerà la scadenza dell'oggetto ripristinato.

Sintassi

POST https://{endpoint}/{bucket}/{object}?restore # path style
POST https://{bucket}.{endpoint}/{object}?restore # virtual host style
<RestoreRequest>
	<Days>{integer}</Days>
	<GlacierJobParameters>
		<Tier>Bulk</Tier>
	</GlacierJobParameters>
</RestoreRequest>

Esempi

Richiesta di esempio

POST /images/backup?restore HTTP/1.1
Host: s3.us.cloud-object-storage.appdomain.cloud
Date: Wed, 7 Feb 2018 19:50:00 GMT
Authorization: {authorization string}
Content-Type: text/plain
Content-MD5: 1B2M2Y8AsgTpgAmY7PhCfg==
Content-Length: 305
<RestoreRequest>
	<Days>3</Days>
	<GlacierJobParameters>
		<Tier>Bulk</Tier>
	</GlacierJobParameters>
</RestoreRequest>

Risposta di esempio

HTTP/1.1 202 Accepted
Date: Wed, 7 Feb 2018 19:51:00 GMT
Connection: close
var params = {
  Bucket: 'STRING_VALUE', /* required */
  Key: 'STRING_VALUE', /* required */
  ContentMD5: 'STRING_VALUE', /* required */
  RestoreRequest: {
   Days: 1, /* days until copy expires */
   GlacierJobParameters: {
     Tier: 'STRING_VALUE' /* required */
   },
  }
 };
 s3.restoreObject(params, function(err, data) {
   if (err) console.log(err, err.stack); // an error occurred
   else     console.log(data);           // successful response
});
response = client.restore_object(
    Bucket='string',
    Key='string',
    RestoreRequest={
        'Days': 123,
        'GlacierJobParameters': {
            'Tier': 'string'
        },
    }
)
public RestoreObjectRequest(String bucketName,
                            String key,
                            int expirationInDays)

Riepilogo metodo

Metodo Descrizione
clone() Crea un clone per indirizzo (shallow) di questo oggetto per tutti i campi ad eccezione del contesto del gestore.
getBucketName() Restituisce il nome del bucket che contiene il riferimento all'oggetto da ripristinare.
getExpirationInDays() Restituisce il periodo di tempo in giorni dalla creazione dell'oggetto alla sua scadenza.
setExpirationInDays(int expirationInDays) Imposta il periodo di tempo, in giorni, tra il caricamento di un oggetto nel bucket e la sua scadenza.

Ottieni le intestazioni di un oggetto

Una richiesta HEAD, dato un percorso a un oggetto, richiama le intestazioni di tale oggetto. Questa operazione non utilizza parametri di query o elementi payload specifici dell'operazione.

Sintassi

HEAD https://{endpoint}/{bucket-name}/{object-name} # path style
HEAD https://{bucket-name}.{endpoint}/{object-name} # virtual host style

Intestazioni di risposta per gli oggetti archiviati

Intestazione Immettere Descrizione
x-amz-restore stringa Inclusa se l'oggetto è stato ripristinato o se è in corso un ripristino. Se l'oggetto è stato ripristinato, viene restituita anche la data di scadenza per la copia temporanea.
x-amz-storage-class stringa Restituisce GLACIER o ACCELERATED se archiviato o temporaneamente ripristinato.
x-ibm-archive-transition-time date Restituisce la data e l'ora in cui è pianificata la transizione dell'oggetto al livello di archivio.
x-ibm-transition stringa Inclusa se l'oggetto contiene metadati di transizione e restituisce il livello e l'ora originale della transizione.
x-ibm-restored-copy-storage-class stringa Inclusa se un oggetto si trova negli stati RestoreInProgress o Restored e restituisce la classe di archiviazione del bucket.

Richiesta di esempio

HEAD /images/backup HTTP/1.1
Authorization: {authorization-string}
x-amz-date: 20160825T183244Z
Host: s3.us.cloud-object-storage.appdomain.cloud

Risposta di esempio

HTTP/1.1 200 OK
Date: Wed, 7 Feb 2018 19:51:00 GMT
X-Clv-Request-Id: da214d69-1999-4461-a130-81ba33c484a6
Accept-Ranges: bytes
Server: 3.x
X-Clv-S3-Version: 2.5
ETag: "37d4c94839ee181a2224d6242176c4b5"
Content-Type: text/plain; charset=UTF-8
Last-Modified: Thu, 25 Aug 2017 17:49:06 GMT
Content-Length: 11
x-ibm-transition: transition="ARCHIVE", date="Mon, 03 Dec 2018 22:28:38 GMT"
x-amz-restore: ongoing-request="false", expiry-date="Thu, 06 Dec 2018 18:28:38 GMT"
x-amz-storage-class: "GLACIER"
x-ibm-restored-copy-storage-class: "Standard"
response = client.head_object(
    Bucket='string',
    Key='string'
)
var params = {
  Bucket: 'STRING_VALUE', /* required */
  Key: 'STRING_VALUE', /* required */
};
s3.headObject(params, function(err,data) {
  if (err) console.log(err, err.stack); // an error occurred
  else
    console.log(data);           // successful response
});
public ObjectMetadata()

Riepilogo metodo

Metodo Descrizione
clone() Restituisce un clone di questo ObjectMetadata.
getRestoreExpirationTime() Restituisce quando un oggetto che è stato ripristinato temporaneamente da ARCHIVE scadrà e dovrà essere ripristinato di nuovo per potervi accedere.
getStorageClass() Restituisce la classe di archiviazione originale del bucket.
getIBMTransition() Restituisce la classe di archiviazione della transizione e il momento della transizione.

Passi successivi

Oltre all'archiviazione a freddo, IBM Cloud offre attualmente diverse classi di archiviazione di oggetti per le diverse esigenze degli utenti, tutte accessibili tramite portali web e API RESTful. Ulteriori informazioni su tutte le classi di archiviazione disponibili all'indirizzo IBM Cloud Object Storage.