Oggetti storage degli oggetti
Informazioni su come eseguire gli oggetti di storage manageObject, ovvero file o dati non strutturati che è possibile caricare in un bucket di storage degli oggetti in un compartimento.
Nel servizio di storage degli oggetti, un oggetto è un file o dati non strutturati caricati in un bucket all'interno di un compartimento all'interno di uno spazio di nomi di storage degli oggetti. L'oggetto può essere qualsiasi tipo di dati, ad esempio file multimediali, backup di dati, contenuto Web statico o log. È possibile memorizzare oggetti fino a 10 TiB. Gli oggetti vengono elaborati come entità singola. Non è possibile modificare o aggiungere dati a un oggetto, ma è possibile sostituire l'intero oggetto.
Lo storage degli oggetti consente il controllo delle versioni degli oggetti, che crea una copia accessibile e scaricabile di una determinata versione di un oggetto caricato in un bucket. Il controllo delle versioni degli oggetti protegge gli oggetti da sovrascritture o eliminazioni accidentali o dannose. Per ulteriori informazioni, vedere Controllo delle versioni dello storage degli oggetti.
In questi argomenti viene descritto come gestire gli oggetti all'interno di un singolo bucket. Per informazioni sulla copia di un oggetto in un altro bucket, vedere Copia di oggetti.
Task oggetto
È possibile eseguire i task degli oggetti di storage degli oggetti riportati di seguito.
-
Cerca gli oggetti in un bucket in base al prefisso del nome oggetto
-
Recupera i dettagli di un bucket, ad esempio la tag entità o il livello di storage
-
Controllare lo stato di un oggetto da ripristinare dallo storage di archivio
-
Sincronizza una directory del file system con gli oggetti in un bucket
È possibile eseguire determinati task su un gruppo di oggetti alla volta utilizzando l'interfaccia della riga di comando. Per ulteriori informazioni, vedere Task oggetto di massa.
Criteri IAM necessari
Per utilizzare Oracle Cloud Infrastructure, un amministratore deve essere un membro di un gruppo a cui è stato concesso l'accesso di sicurezza in un criterio da un amministratore della tenancy. Questo accesso è necessario se si utilizza la console o l'API REST con un SDK, un'interfaccia CLI o un altro strumento. Se viene visualizzato un messaggio che informa che non si dispone dell'autorizzazione o che non si è autorizzati, verificare con l'amministratore della tenancy il tipo di accesso di cui si dispone e il compartimento in cui funziona l'accesso.
Se non si ha familiarità con i criteri, vedere Gestione dei domini di Identity e Criteri comuni.
Per gli amministratori:
-
Il criterio Consenti agli amministratori di storage degli oggetti di gestire bucket e oggetti consente al gruppo specificato di eseguire qualsiasi operazione con bucket e oggetti. Gli oggetti risiedono sempre nello stesso compartimento del bucket.
-
Se è necessario scrivere un criterio più restrittivo per gli oggetti,
inspect objects
consente di elencare tutti gli oggetti in un bucket ed eseguire un'operazione HEAD per un determinato oggetto. In confronto,read objects
consente di scaricare l'oggetto stesso. -
Per creare criteri più restrittivi che concedono autorizzazioni individuali:
-
OBJECT_VERSION_DELETE è necessario per eliminare le versioni precedenti degli oggetti per conto dell'utente utilizzando i criteri del ciclo di vita.
-
Per modificare il livello di storage di un oggetto è necessario OBJECT_UPDATE_TIER.
-
Per ulteriori informazioni sulle autorizzazioni utente dello storage degli oggetti, dello storage di archivio e del trasferimento dati, vedere Dettagli per lo storage degli oggetti, lo storage di archivio e il trasferimento dati.
Criteri IAM per gli oggetti
A volte avere un controllo dell'accesso a livello di bucket non è sufficiente per le tue esigenze di sicurezza. È invece necessario avere un controllo più granulare su un gruppo di oggetti individuale o basato su prefissi o suffissi. Ad esempio, se si fa parte di un gruppo autorizzato per un oggetto specifico a ottenere una richiesta di lavoro, è necessario un criterio IAM di Identity and Access Management che conceda esplicitamente l'autorizzazione per tale operazione.
I criteri IAM a livello di oggetto ti consentono di concedere l'autorizzazione a oggetti e sottoinsiemi specifici di oggetti all'interno di un bucket di storage degli oggetti. La variabile dei criteri IAM target.object.name
consente di applicare l'autorizzazione e le autorizzazioni agli oggetti, analogamente a quanto è possibile fare con tenancy, compartimenti e bucket. Ad esempio:
ALLOW GROUP object-authZ-op-group-ost-object TO manage objects IN TENANCY where any {target.object.name = 'ost-object-*', request.operation = 'GetObject'}
I criteri IAM a livello di oggetto sono particolarmente utili per i casi d'uso di Big Data e Data Lake in cui un singolo bucket dispone di molti set di dati diversi ed è accessibile da diversi team o carichi di lavoro.
Per creare criteri IAM a livello di oggetto, attenersi alla procedura descritta nella sezione Creazione di un criterio. Aggiungere istruzioni dei criteri per IAM a livello di oggetto utilizzando la seguente sintassi:
ALLOW GROUP <group> TO manage objects IN TENANCY where all {target.object.name = '<object-pattern>', target.bucket.name = '<bucket_name>'}
L'autorizzazione viene valutata per i criteri IAM a livello di oggetto quando arriva la richiesta per un oggetto sul server.
Sono necessarie autorizzazioni per elencare i bucket in un compartimento ed elencare gli oggetti in un bucket per elencare gli oggetti o i pattern di oggetti specifici quando si utilizza la console. Per accedere agli oggetti elencati è necessario disporre delle autorizzazioni di lettura (READ).
Se il nome o il percorso dell'oggetto è già noto e si sta accedendo utilizzando l'interfaccia CLI o l'API, non sono necessarie queste autorizzazioni di accesso al compartimento o al bucket.
Per rendere effettivi i criteri oggetto applicati, potrebbe essere necessario attendere alcuni minuti. Questo ritardo è applicabile a tutti i criteri creati o aggiornati che controllano l'accesso alle risorse di storage degli oggetti.
È inoltre possibile aggiornare un criterio esistente per includere le autorizzazioni IAM a livello di oggetto. Vedere Updating a Policy's Statements. I criteri IAM a livello di oggetto sono compatibili con tutti i costrutti di criteri esistenti.
Esempio 1: consentire l'accesso completo a un gruppo per una cartella in un bucket:
ALLOW group test-group TO manage objects IN TENANCY where all {target.bucket.name = 'test-bucket', target.object.name = 'prod/*'}
Esempio 2: consentire l'accesso in sola lettura a un gruppo per una cartella in un bucket:
ALLOW group test-group TO manage objects IN TENANCY where all {target.bucket.name = 'test-bucket', target.object.name = 'prod/*', any{request.permission='OBJECT_INSPECT', request.permission='OBJECT_READ'}}
Esempio 3: consentire la scrittura una volta (senza sovrascritture) e l'accesso in lettura o eliminazione a un gruppo per una cartella:
ALLOW group test-group TO manage objects IN TENANCY where all {target.bucket.name = 'test-bucket', target.object.name = 'prod/*', any{request.permission='OBJECT_CREATE'}}
Esempio 4: consentire l'accesso in lettura e scrittura a un gruppo per una cartella in un bucket (senza lista o sovrascrittura):
ALLOW group test-group TO manage objects IN TENANCY where all {target.bucket.name = 'test-bucket', target.object.name = 'prod/*', any{request.permission='OBJECT_CREATE', request.permission='OBJECT_READ'}}
Esempio 5: consentire l'accesso completo per un utente specifico per un pattern di oggetti in un bucket:
ALLOW any-user TO manage objects IN TENANCY where all {target.bucket.name = 'test-bucket', target.object.name = '*.pdf', request.user.id='ocid1.user.oc1..exampleuniqueID'}
Richieste precedenti all'autenticazione
Le richieste preautenticate consentono agli utenti di accedere a un bucket o a un oggetto senza disporre delle proprie credenziali. Ad esempio, puoi creare una richiesta che consenta a un utente di caricare i backup in un bucket senza possedere chiavi API. Per i dettagli, consulta la sezione relativa alle richieste preautenticate di storage degli oggetti.
nomi oggetto
A differenza di altre risorse, gli oggetti non dispongono di identificativi Oracle Cloud (OCID). Gli utenti definiscono invece un nome oggetto quando caricano un oggetto.
Per assegnare un nome a un oggetto, attenersi alle linee guida riportate di seguito.
-
Utilizzare da 1 a 1024 caratteri.
-
I caratteri validi sono lettere (maiuscole o minuscole), numeri e caratteri diversi da avanzamento riga, ritorno a capo e NULL.
Importante
I nomi dei bucket e degli oggetti fanno distinzione tra maiuscole e minuscole. Lo storage degli oggetti gestisce q3-field-assets.xslx e Q3-Field-Assets.XSLX come oggetti separati.
-
Utilizzare solo caratteri Unicode per i quali la codifica UTF-8 non supera i 1024 byte. I client sono responsabili dei caratteri di codifica URL.
-
Evitare di fornire informazioni riservate.
-
Rendere univoco il nome all'interno del bucket. Non utilizzare il nome di un oggetto esistente all'interno del bucket quando si assegna un nome a un oggetto a meno che non si intenda sovrascrivere l'oggetto esistente con il contenuto dell'oggetto nuovo o rinominato.
I nomi oggetto possono includere uno o più caratteri barra (/) nel nome. Per ulteriori informazioni sull'utilizzo della barra nei nomi degli oggetti per creare gerarchie, vedere Denominazione degli oggetti mediante prefissi e gerarchie.
Denominazione degli oggetti tramite prefissi e gerarchie
All'interno di uno spazio di nomi dello storage degli oggetti, i bucket e gli oggetti esistono in una struttura sequenziale. Tuttavia, è possibile simulare una struttura di directory aggiungendo una stringa di prefisso che include una o più barre (/) in avanti al nome di un oggetto. In questo modo è possibile elencare una directory alla volta, il che è utile quando si naviga in un set di oggetti di grandi dimensioni.
Ad esempio:
marathon/finish_line.jpg
marathon/participants/p_21.jpg
Se sono stati aggiunti prefissi ai nomi oggetto, è possibile:
-
Utilizzare l'interfaccia CLI o l'API per eseguire i download in blocco e le eliminazioni in blocco di tutti gli oggetti a un livello specificato della gerarchia.
-
Utilizzare la console per visualizzare una vista gerarchica degli oggetti nelle cartelle virtuali. Nell'esempio precedente,
marathon
viene visualizzato come cartella contenente un oggetto denominatofinish_line.jpg
eparticipants
come sottocartella dimarathon
contenente un oggetto denominatop_21.jpg
. È possibile caricare oggetti in blocco a qualsiasi livello della gerarchia ed eseguire eliminazioni in blocco di tutti gli oggetti in un bucket o in una cartella.
Le operazioni di massa a un livello specificato della gerarchia non influiscono sugli oggetti a un livello precedente.
Quando si denominano gli oggetti, è inoltre possibile utilizzare stringhe di prefisso senza un delimitatore. Nessun delimitatore consentirebbe alle operazioni di ricerca nella console e a determinate operazioni in blocco nella CL o nell'API di trovare una corrispondenza nella parte del prefisso del nome dell'oggetto. Ad esempio, nei nomi degli oggetti riportati di seguito, la stringa gloves_27_
può fungere da prefisso per la corrispondenza quando si eseguono operazioni in blocco:
gloves_27_dark_green.jpg
gloves_27_light_blue.jpg
Quando esegui caricamenti di massa con la console, l'interfaccia CLI o l'API, puoi anteporre una stringa di prefisso ai nomi dei file che stai caricando.
Per i dettagli della gerarchia e della stringa del prefisso per una determinata interfaccia di gestione, vedere i singoli task in Bucket di storage degli oggetti.
Header e metadati di risposta facoltativi
Quando si caricano gli oggetti, è possibile fornire intestazioni di risposta facoltative e metadati definiti dall'utente. Le intestazioni di risposta sono intestazioni HTTP inviate dallo storage degli oggetti ai client di storage degli oggetti quando gli oggetti vengono scaricati. I metadati definiti dall'utente sono coppie nome-valore memorizzate con un oggetto. È possibile utilizzare la console, l'API REST o l'interfaccia CLI per fornire questi attributi facoltativi.
Non viene eseguita alcuna convalida sulle intestazioni o sui metadati di risposta forniti.
È possibile specificare i valori per le seguenti intestazioni di risposta:
-
Content-Disposition
Definisce solo le informazioni di presentazione per l'oggetto. La specifica dei valori per questa intestazione non ha alcun effetto sul funzionamento dello storage degli oggetti. I programmi che leggono l'oggetto decidono cosa fare in base al valore fornito. Ad esempio, è possibile utilizzare questa intestazione per consentire agli utenti di scaricare oggetti con nomi di file personalizzati in un browser:
attachment; filename="fname.ext"
Per ulteriori informazioni, vedere https://tools.ietf.org/html/rfc2616#section-19.5.1.
-
Cache-Control
Definisce il funzionamento dell'inserimento nella cache per l'oggetto. La specifica dei valori per questa intestazione non ha alcun effetto sul funzionamento dello storage degli oggetti. I programmi che leggono l'oggetto decidono cosa fare in base al valore fornito. Ad esempio, è possibile utilizzare questa intestazione per identificare gli oggetti che richiedono limitazioni di inserimento nella cache:
no-cache, no-store
Per ulteriori informazioni, vedere https://tools.ietf.org/html/rfc2616#section-14.9.
I metadati definiti dall'utente vengono specificati sotto forma di coppie nome-valore. I nomi dei metadati definiti dall'utente vengono memorizzati e restituiti ai client di storage degli oggetti con il prefisso obbligatorio opc-meta-.
Gestione del ciclo di vita degli oggetti
Object Lifecycle Management ti consente di gestire automaticamente l'eliminazione dei caricamenti multiparte di cui non è stato eseguito il commit, lo spostamento degli oggetti in un livello di storage diverso e l'eliminazione delle risorse supportate per tuo conto all'interno di un determinato bucket. Queste azioni automatiche si basano su regole definite e gestite dall'utente. Per ulteriori informazioni su questa funzione, vedere Gestione del ciclo di vita degli oggetti di storage degli oggetti.
Caricamento e download multiparte
Il servizio Oracle Cloud Infrastructure Object Storage supporta il caricamento e il download multiparte per gli oggetti.
-
Per informazioni sulla funzionalità di caricamento multiparte API e CLI, vedere Caricamenti multiparte dello storage degli oggetti.
-
Per informazioni sull'interfaccia CLI relative al download multiparte, vedere Download di un oggetto mediante il download multiparte.
-
Per la documentazione API relativa al download multiparte, vedere la chiamata API GetObject e il relativo parametro range.
Monitoraggio delle risorse
Puoi monitorare lo stato, la capacità e le prestazioni delle risorse Oracle Cloud Infrastructure utilizzando metriche, allarmi e notifiche. Per ulteriori informazioni, vedere Monitoraggio e Notifiche.
Per ulteriori informazioni sul monitoraggio degli oggetti, vedere Metriche dello storage degli oggetti.
Creazione dell'automazione per gli oggetti mediante il servizio Eventi
Puoi creare l'automazione in base alle modifiche di stato per le risorse Oracle Cloud Infrastructure utilizzando tipi di evento, regole e azioni. Per ulteriori informazioni, vedere Panoramica degli eventi.