Upload data
Dopo aver organizzato la tua archiviazione in bucket, è tempo di aggiungere alcuni oggetti caricando i dati.
A seconda di come vuoi utilizzare la tua archiviazione, ci sono diversi modi per raggiungere i dati nel sistema. Un data scientist dispone di pochi file di grandi dimensioni che vengono utilizzati per l'analisi, un amministratore di sistema deve tenere sincronizzati i backup del database con i file locali e uno sviluppatore sta scrivendo il software che deve leggere e scrivere milioni di file. Ognuno di questi scenari viene servito al meglio da diversi metodi di inserimento dei dati.
Alcune applicazioni potrebbero voler limitare un utente o un ID servizio alla sola operazione di caricamento dei dati, senza consentirgli l'accesso alla lettura dei dati contenuti in un bucket. Ciò è possibile tramite il ruolo IAM di Object Writer.
Utilizzo della console
Di norma, l'utilizzo della console basata su web non è il modo più comune per utilizzare Object Storage. Gli oggetti sono limitati a 200 MB e il nome file e la chiave sono identici. Più oggetti possono essere caricati contemporaneamente e se il browser consente più thread, ogni oggetto verrà caricato utilizzando più parti in parallelo. Il supporto per le dimensioni degli oggetti più grandi e per le prestazioni migliorate (a seconda dei fattori di rete) viene fornito dal trasferimento ad alta velocità Aspera.
Utilizzo di uno strumento compatibile
Alcuni utenti vogliono utilizzare un programma di utilità autonomo per interagire con la loro archiviazione. Poiché l'API Cloud Object Storage supporta l'insieme più comune di operazioni API S3, molti strumenti compatibili con S3 possono anche connettersi a Object Storage utilizzando le credenziali HMAC.
Alcuni esempi includono alcuni file explorer come Cyberduck o Transmit, programmi di utilità di backup come Cloudberry e Duplicati, programmi di utilità di riga di comando come s3cmd o Minio Client e molti altri. È inoltre possibile cercare nel catalogo IBM Cloud i servizi di terze parti che consentono di spostare i dati su Cloud Object Storage, ad esempio Lyve Data Transfer Services.
Utilizzo dell'API
La maggior parte delle applicazioni programmatiche di Object Storage utilizzano un SDK (ad esempio Java, node.js o Python) o l'API Cloud Object Storage. Di norma, gli oggetti vengono caricati in più parti, con dimensione parte e numero di parti configurati da una classe Transfer Manager.
Richieste condizionali
Quando si effettua una richiesta di lettura o scrittura dei dati, è possibile impostare le condizioni su tale richiesta per evitare operazioni non necessarie. Ciò si ottiene utilizzando le seguenti intestazioni pre-condizionali HTTP: If-Match,
If-None-Match, If-Modified-Since e If-Unmodified-Since.
In genere è preferibile utilizzare If-Match , poiché la granularità del valore Last-Modified è espressa solo in secondi e potrebbe non essere sufficiente per evitare condizioni di competizione
in alcune applicazioni.
Utilizzo If-Match
In una richiesta PUT, HEAD o GET relativa a un oggetto, l'intestazione If-Match verifica se l' Etag ( MD5 hash del contenuto dell'oggetto) fornito corrisponde al valore Etag specificato. Se questo valore corrisponde, l'operazione prosegue. Se la corrispondenza non va a buon fine, il sistema restituisce un errore “412 Precondition Failed` ”.
If - Match è più spesso utilizzato con metodi di modifica dello stato (ad esempio, POST, PUT, DELETE) per evitare sovrascritture accidentali quando più agent utente potrebbero agire in parallelo sulla stessa risorsa (ovvero, per evitare il problema di "aggiornamento perso").
Utilizzo If-None-Match
In una richiesta PUT, HEAD o GET relativa a un oggetto, l'intestazione If-None-Match verifica se l' Etag ( MD5 hash del contenuto dell'oggetto) fornito corrisponde al valore Etag specificato. Se questo valore non corrisponde, l'operazione prosegue. Se la corrispondenza va a buon fine, il sistema restituisce un errore “412 Precondition Failed” in caso di richiesta PUT e un errore “304
Not Modified` ” in caso di richiesta GET o HEAD.
If - None - Match viene utilizzato principalmente nelle richieste GET condizionali per abilitare gli aggiornamenti efficienti delle informazioni memorizzate nella cache con una quantità minima di overhead di transazione. Quando un client desidera aggiornare una o più risposte memorizzate che hanno tag di entità, il client DEVE generare un campo di intestazione If - None - Match contenente un elenco di tali tag di entità quando effettua una richiesta GET; ciò consente ai server destinatari di inviare una risposta 304 (non modificata) per indicare quando una di tali risposte memorizzate corrisponde alla rappresentazione selezionata.
Utilizzo If-Modified-Since
In caso di richiesta HEAD o GET su un oggetto, l'intestazione If-Modified-Since verifica se il valore Last-Modified dell'oggetto (ad esempio
Sat, 14 March 2020 19:43:31 GMT) è più recente di un valore specificato. Se l'oggetto è stato modificato, l'operazione prosegue. Se l'oggetto non è stato modificato, il sistema restituisce un " 304 Not Modified".
If - Modified - Since è tipicamente utilizzato per due scopi distinti: 1) per consentire aggiornamenti efficienti di una rappresentazione memorizzata nella cache che non ha un entity - tag e 2) per limitare l'ambito di un attraversamento web alle risorse che sono state modificate di recente.
Utilizzo If-Unmodified-Since
In una richiesta PUT, HEAD o GET relativa a un oggetto, l'intestazione If-Unmodified-Since verifica se il valore Last-Modified dell'oggetto (ad esempio Sat, 14 March 2020 19:43:31 GMT) è uguale o precedente a un valore specificato. Se l'oggetto non è stato modificato, l'operazione prosegue. Se il valore di " Last-Modified " è
più recente, il sistema restituisce un errore " 412 Precondition Failed " in caso di richiesta PUT e un errore " 304 Not Modified " in caso di richiesta GET o HEAD.
If - Unmodified - Since è spesso utilizzato con i metodi di modifica dello stato (ad esempio, POST, PUT, DELETE) per evitare sovrascritture accidentali quando più agent utente potrebbero agire in parallelo su una risorsa che non fornisce tag di entità con le relative rappresentazioni (ovvero, per evitare il problema di "aggiornamento perso"). Può anche essere utilizzato con metodi sicuri per interrompere una richiesta se la rappresentazione selezionata non corrisponde a una già memorizzata (o parzialmente memorizzata) da una precedente richiesta.
Cerca e filtra gli oggetti
Utilizza la console " Object Storage " per cercare e filtrare gli oggetti in base a nome, dimensione, data o estensione. Per ulteriori dettagli, consultare la sezione " Ricerca e filtraggio degli oggetti nell'interfaccia utente ".