Nota:

Elimina gli oggetti in blocco/batch dallo storage degli oggetti

Introduzione

Esistono modi diversi per eliminare gli oggetti dallo storage degli oggetti. Puoi eseguire operazioni di eliminazione di singoli oggetti tramite console, CLI o API/SDK. Tuttavia, il problema diventa non banale quando si elimina un numero estremamente elevato di oggetti. In questa esercitazione vengono descritti i metodi riportati di seguito che è possibile utilizzare per l'eliminazione in blocco/batch degli oggetti.

Punti da notare

Consultare i seguenti punti per eliminare oggetti in blocco utilizzando l'interfaccia CLI OCI:

Consultare i seguenti punti per eliminare oggetti in blocco utilizzando OLM:

Qual è il metodo da utilizzare?

La differenza principale tra i due metodi di eliminazione di oggetti in blocco/in batch è nell'implementazione. Per ripetere l'operazione, il comando di eliminazione in blocco CLI OCI viene implementato in modo sincrono sul lato client, mentre OLM viene implementato in modo asincrono sul lato server. In generale, utilizzare i criteri riportati di seguito per determinare il metodo da utilizzare.

Utilizzare l'eliminazione di massa CLI se: Utilizzare l'eliminazione di massa OLM se:
L'eliminazione può avvenire in modo sincrono perché l'interfaccia CLI è sincrona L'eliminazione deve avvenire in modo asincrono (poiché OLM è asincrono)
Eliminazione occasionale Eliminazione ricorrente che deve avvenire per sempre
Esiste un numero ridotto di oggetti Sono presenti numerosi oggetti
L'eliminazione dell'oggetto deve avvenire immediatamente L'eliminazione dell'oggetto può attendere (con un breve ritardo)

Obiettivo

Prerequisiti

Metodo 1: eliminazione di oggetti in blocco/batch tramite l'interfaccia CLI OCI

È possibile eliminare in blocco gli oggetti dall'interfaccia CLI OCI utilizzando uno dei metodi indicati di seguito.

Elimina gli oggetti in blocco all'interno di un bucket

Puoi utilizzare l'interfaccia CLI OCI per eseguire l'eliminazione in blocco degli oggetti all'interno di un bucket mediante il seguente comando:

oci os object bulk-delete -bn <bucket_name>

Nota: se non si desidera eseguire l'operazione di eliminazione, ma si desidera visualizzare un piano di cui verranno eliminati gli oggetti, è possibile utilizzare l'opzione --dry-run.

oci os object bulk-delete -bn <bucket_name> --dry-run
{
  "delete-failures": {},
  "deleted-objects": [
    "1000_sales.csv",
    "rick_and_morty.json"
  ]
}

Elimina in blocco gli oggetti in base al prefisso

È possibile specificare l'eliminazione solo degli oggetti che corrispondono a un determinato prefisso aggiungendo l'opzione --prefix. Il comando seguente elimina tutti gli oggetti che corrispondono al prefisso <some_prefix>.

oci os object bulk-delete -bn <bucket_name> --prefix <some_prefix>

Ad esempio, se si desidera eliminare oggetti che corrispondono al prefisso "rick", utilizzare il seguente comando:

oci os object bulk-delete -bn test-bucket-1 --prefix rick
WARNING: This command will delete at least 1 objects. Are you sure you wish to continue? [y/N]: y
Deleted object rick_and_morty.json  [####################################]  100%
{
    "delete-failures": {},
    "deleted-objects": [
    "rick_and_morty.json"
    ]
}

Elimina gli oggetti in blocco in base al pattern (inclusione)

È possibile specificare l'eliminazione solo degli oggetti che corrispondono a un pattern particolare aggiungendo l'opzione --include. Il comando seguente elimina tutti gli oggetti che corrispondono al pattern <some_pattern>.

oci os object bulk-delete -bn <bucket_name> --include <some_pattern>

Ad esempio, se si desidera eliminare solo gli oggetti di tipo file JSON, utilizzare il seguente comando:

oci os object bulk-delete -bn test-bucket-1 --include "*.json"
WARNING: This command will delete at least 1 objects. Are you sure you wish to continue? [y/N]: y
Deleted object rick_and_morty.json  [####################################]  100%
{
    "delete-failures": {},
    "deleted-objects": [
    "rick_and_morty.json"
    ]
}

Elimina gli oggetti in blocco in base al pattern inverso (esclusione)

È possibile specificare l'eliminazione solo degli oggetti che non corrispondono a un determinato pattern aggiungendo l'opzione --exclude. Il comando seguente elimina tutti gli oggetti ad eccezione di quelli che corrispondono al pattern <some_pattern>.

oci os object bulk-delete -bn <bucket_name> --exclude <some_pattern>

Ad esempio, se si desidera eliminare tutti gli oggetti ad eccezione di quelli che sono di tipo file JSON, utilizzare il seguente comando:

oci os object bulk-delete -bn test-bucket-1 --exclude "*.json"
WARNING: This command will delete at least 1 objects. Are you sure you wish to continue? [y/N]: y
Deleted object 1000_sales.csv  [####################################]  100%  
{
    "delete-failures": {},
    "deleted-objects": [
    "1000_sales.csv"
    ]
}

Metodo 2: Eliminare gli oggetti in blocco/batch tramite OLM

Oltre all'interfaccia CLI OCI, è anche possibile utilizzare OLM - Object Lifecycle Management - funzione per l'eliminazione in blocco di oggetti. La funzione OLM consente di creare regole del ciclo di vita che specificano l'azione da eseguire se viene soddisfatta una determinata condizione. Ad esempio, è possibile specificare oggetti che risalgono a più di 30 giorni prima dell'eliminazione.

Creare una regola del ciclo di vita dell'eliminazione di massa nella console/CLI OCI

È possibile creare regole del ciclo di vita tramite la console OCI. A tale scopo, fare clic in un bucket e nella scheda Regole dei criteri del ciclo di vita sul lato. Viene quindi visualizzata una finestra di dialogo che consente all'utente di configurare la regola.

Finestra di dialogo Crea console regola ciclo di vita

Inoltre, è possibile creare regole del ciclo di vita tramite l'interfaccia CLI OCI. Il comando riportato di seguito mostra un esempio di creazione di una regola del ciclo di vita mediante l'interfaccia CLI OCI. La regola elimina tutti gli oggetti che risalgono a più di 10 giorni.

oci os object-lifecycle-policy put --bucket-name test-bucket-1 --items '[
    {
        "action": "DELETE",
        "isEnabled": true,
        "name": "lifecycle-rule-delete-all",
        "target": "objects",
        "timeAmount": 10,
        "timeUnit": "DAYS"
    }
]'

Crea una regola del ciclo di vita dell'eliminazione di massa in base al prefisso

Nella console OCI è possibile specificare i filtri Nome oggetto per gli oggetti che verranno eliminati in base a una determinata condizione. Può gestire la corrispondenza dei prefissi dei nomi oggetto. Lo screenshot riportato di seguito mostra una regola del ciclo di vita che eliminerà tutti gli oggetti con il prefisso test/.

Crea prefisso console regola ciclo di vita

Analogamente alla console, l'interfaccia CLI OCI può anche specificare quali oggetti eliminare tramite la corrispondenza dei prefissi.

oci os object-lifecycle-policy put --bucket-name <test_bucket> --items '[
    {
        ...
        "objectNameFilter": {
            "exclusionPatterns": [],
            "inclusionPatterns": [],
            "inclusionPrefixes": [
                <some_prefix>
            ]
        },
        ...
    }
]'

Ad esempio, il comando CLI OCI riportato di seguito crea/aggiorna una regola del ciclo di vita che eliminerà tutti gli oggetti con il prefisso test/. Tenere presente che l'argomento dell'opzione –-items deve essere una lista JSON valida.

oci os object-lifecycle-policy put --bucket-name test-bucket-1 --items '[
    {
        "action": "DELETE",
        "isEnabled": true,
        "name": "lifecycle-rule-delete-all",
        "objectNameFilter": {
            "exclusionPatterns": [],
            "inclusionPatterns": [],
            "inclusionPrefixes": [
                "test/"
            ]
        },
        "target": "objects",
        "timeAmount": 10,
        "timeUnit": "DAYS"
    }
]'

Crea una regola del ciclo di vita dell'eliminazione di massa per corrispondenza pattern (inclusioni)

Nella console OCI è possibile specificare i filtri dei nomi oggetto per eliminare gli oggetti in base alla corrispondenza di pattern (inclusioni). Lo screenshot riportato di seguito mostra una regola del ciclo di vita che eliminerà tutti i tipi di file .doc.

Crea inclusione pattern console regola ciclo di vita

È anche possibile eseguire l'eliminazione dei soli file che corrispondono a un pattern specifico dall'interfaccia CLI OCI.

oci os object-lifecycle-policy put --bucket-name <bucket_name> --items '[
    {
        ...
        "objectNameFilter": {
            "exclusionPatterns": [],
            "inclusionPatterns": [
                <some_pattern>
            ],
            "inclusionPrefixes": []
        },
        ...
    }
]'

Ad esempio, il comando CLI OCI riportato di seguito crea/aggiorna una regola del ciclo di vita che eliminerà tutti i tipi di file .doc.

oci os object-lifecycle-policy put --bucket-name test-bucket-1 --items '[
    {
        "action": "DELETE",
        "isEnabled": true,
        "name": "lifecycle-rule-delete-all",
        "objectNameFilter": {
            "exclusionPatterns": [],
            "inclusionPatterns": [
                "*.doc"
            ],
            "inclusionPrefixes": []
        },
        "target": "objects",
        "timeAmount": 10,
        "timeUnit": "DAYS"
    }
]'

Crea una regola del ciclo di vita dell'eliminazione di massa per corrispondenza pattern inverso (esclusioni)

Nella console OCI è possibile specificare i filtri dei nomi oggetto per eliminare gli oggetti in base alla corrispondenza pattern inverso (esclusione), ovvero eliminare tutti gli oggetti, ad eccezione di quelli che corrispondono al pattern. Lo screenshot riportato di seguito mostra una regola del ciclo di vita che eliminerà tutti gli elementi tranne i tipi di file .txt.

Crea esclusione pattern console regola ciclo di vita

È anche possibile eliminare tutti i file tranne quelli che corrispondono a un pattern particolare dall'interfaccia CLI OCI.

oci os object-lifecycle-policy put --bucket-name <bucket_name> --items '[
    {
        ...
        "objectNameFilter": {
            "exclusionPatterns": [
                <some_pattern>
            ],
            "inclusionPatterns": [],
            "inclusionPrefixes": []
        },
        ...
    }
]'

Ad esempio, il comando CLI OCI riportato di seguito crea/aggiorna una regola del ciclo di vita che eliminerà ogni oggetto ad eccezione dei tipi di file .txt.

oci os object-lifecycle-policy put --bucket-name test-bucket-1 --items '[
    {
        "action": "DELETE",
        "isEnabled": true,
        "name": "lifecycle-rule-delete-all",
        "objectNameFilter": {
            "exclusionPatterns": [
                "*.txt"
            ],
            "inclusionPatterns": [],
            "inclusionPrefixes": []
        },
        "target": "objects",
        "timeAmount": 10,
        "timeUnit": "DAYS"
    }
]'

Riconoscimenti

Altre risorse di apprendimento

Esplora altri laboratori all'indirizzo docs.oracle.com/learn o accedi ad altri contenuti per la formazione gratuita sul canale YouTube di Oracle Learning. Inoltre, visitare education.oracle.com/learning-explorer per diventare Oracle Learning Explorer.

Per la documentazione sul prodotto, visitare Oracle Help Center.