Hinweis:

Objekte in Bulk/Batch aus Object Storage löschen

Einführung

Es gibt verschiedene Möglichkeiten, Objekte aus Object Storage zu löschen. Sie können Vorgänge zum Löschen einzelner Objekte über die Konsole, die CLI oder API/SDK ausführen. Das Problem wird jedoch beim Löschen einer extrem großen Anzahl von Objekten nicht trivial. In diesem Tutorial werden die folgenden Methoden beschrieben, mit denen Sie Objekte per Bulk-/Batchlöschung löschen können:

Zu beachtende Punkte

Beachten Sie die folgenden Punkte beim globalen Löschen von Objekten mit der OCI-CLI:

Beachten Sie die folgenden Punkte beim globalen Löschen von Objekten mit OLM:

Welche Methode sollte ich verwenden?

Der Hauptunterschied zwischen den beiden Methoden zum Löschen von Bulk-/Batchobjekten besteht in der Implementierung. Zur Wiederholung wird der Bulk-Löschbefehl der OCI-CLI auf Clientseite synchron implementiert, während OLM auf Serverseite asynchron implementiert ist. Als allgemeine Daumenregel verwenden Sie die folgenden Kriterien, um die zu verwendende Methode zu bestimmen.

Verwenden Sie die CLI im Bulkverfahren, wenn: OLM global löschen, wenn:
Der Löschvorgang kann synchron erfolgen (weil CLI synchron ist). Der Löschvorgang muss asynchron erfolgen (da OLM asynchron ist)
Einmaliger Löschvorgang Wiederkehrender Löschvorgang, der für immer erfolgen sollte
Es gibt eine kleine Anzahl von Objekten Es gibt eine große Anzahl von Objekten
Das Löschen des Objekts muss sofort erfolgen Das Löschen des Objekts kann warten (keine kurze Verzögerung)

Zielsetzung

Voraussetzungen

Methode 1: Objekte per Bulk-/Batch über OCI-CLI löschen

Sie können Objekte mit einer der folgenden Methoden per Bulk-Vorgang aus der OCI-CLI löschen.

Objekte im Bulkverfahren innerhalb eines Buckets löschen

Mit der OCI-CLI können Sie Objekte in einem Bucket mit dem folgenden Befehl global löschen:

oci os object bulk-delete -bn <bucket_name>

Hinweis: Wenn Sie den Löschvorgang nicht ausführen möchten, sondern lediglich einen Plan anzeigen möchten, aus dem Objekte gelöscht werden, können Sie die Option --dry-run verwenden.

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

Objekte im Bulkverfahren nach Präfix löschen

Sie können das Löschen nur von Objekten angeben, die einem bestimmten Präfix entsprechen, indem Sie die Option --prefix hinzufügen. Mit dem folgenden Befehl werden alle Objekte gelöscht, die mit dem Präfix <some_prefix> übereinstimmen.

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

Beispiel: Wenn Sie Objekte löschen möchten, die mit dem Präfix "rick" übereinstimmen, verwenden Sie den folgenden Befehl:

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"
    ]
}

Objekte im Bulkverfahren nach Muster löschen (Einschluss)

Sie können das Löschen nur von Objekten angeben, die einem bestimmten Muster entsprechen, indem Sie die Option --include hinzufügen. Mit dem folgenden Befehl werden alle Objekte gelöscht, die dem Muster <some_pattern> entsprechen.

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

Beispiel: Wenn Sie nur Objekte mit dem JSON-Dateityp löschen möchten, verwenden Sie den folgenden Befehl:

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"
    ]
}

Objekte durch inverses Muster (Ausschluss) global löschen

Sie können das Löschen nur von Objekten angeben, die keinem bestimmten Muster entsprechen, indem Sie die Option --exclude hinzufügen. Mit dem folgenden Befehl werden alle Objekte gelöscht, mit Ausnahme der Objekte, die dem Muster <some_pattern> entsprechen.

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

Beispiel: Wenn Sie alle Objekte mit Ausnahme der JSON-Dateitypen löschen möchten, verwenden Sie den folgenden Befehl:

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"
    ]
}

Methode 2: Objekte in Bulk/Batch über OLM löschen

Neben der OCI-CLI können Sie auch das OLM-Feature "Object Lifecycle Management" verwenden, um Objekte global zu löschen. Mit der OLM-Funktion können Sie Lebenszyklusregeln erstellen, die angeben, welche Aktion ausgeführt werden soll, wenn eine bestimmte Bedingung erfüllt ist. Beispiel: Sie können Objekte angeben, die älter als 30 Tage sind, um gelöscht zu werden.

Lebenszyklusregel für Massenlöschungen in der OCI-Konsole/CLI erstellen

Lebenszyklusregeln können über die OCI-Konsole erstellt werden. Dazu klicken Sie in einen Bucket und öffnen die Registerkarte "Lebenszyklus-Policy-Regeln" auf der Seite. Dann wird ein Dialogfeld angezeigt, in dem der Benutzer seine Regel konfigurieren kann.

Dialogfeld "Lebenszyklusregelkonsole erstellen"

Lebenszyklusregeln können auch über die OCI-CLI erstellt werden. Der folgende Befehl ist ein Beispiel für das Erstellen einer Lebenszyklusregel mit der OCI-CLI. Die Regel löscht alle Objekte, die älter als 10 Tage sind.

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"
    }
]'

Lebenszyklusregel für Massenlöschungen nach Präfix erstellen

In der OCI-Konsole können Sie Objektnamenfilter für Objekte angeben, die basierend auf einer bestimmten Bedingung gelöscht werden. Sie kann Objektnamenspräfixabgleich verarbeiten. Der folgende Screenshot zeigt eine Lebenszyklusregel, mit der alle Objekte mit dem Präfix test/ gelöscht werden.

Präfix für Lebenszyklusregelkonsole erstellen

Wie bei der Konsole kann auch die OCI-CLI angeben, welche Objekte durch Präfixabgleich gelöscht werden sollen.

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

Beispiel: Mit dem folgenden OCI-CLI-Befehl wird eine Lebenszyklusregel erstellt/aktualisiert, mit der alle Objekte mit dem Präfix test/ gelöscht werden. Denken Sie daran, dass das Argument für die Option –-items eine gültige JSON-Liste sein muss.

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"
    }
]'

Lebenszyklusregel für Massenlöschungen nach Musterabgleich (Inklusionen) erstellen

In der OCI-Konsole können Sie Objektnamenfilter angeben, um Objekte nach Musterabgleich (Einschlüsse) zu löschen. Der folgende Screenshot zeigt eine Lebenszyklusregel, mit der alle Dateitypen .doc gelöscht werden.

Inklusion von Lebenszyklusregelkonsolenmustern erstellen

Sie können auch nur Dateien löschen, die einem bestimmten Muster aus der OCI-CLI entsprechen.

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

Beispiel: Mit dem folgenden OCI-CLI-Befehl wird eine Lebenszyklusregel erstellt/aktualisiert, mit der alle .doc-Dateitypen gelöscht werden.

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"
    }
]'

Lebenszyklusregel für Massenlöschungen durch umgekehrten Musterabgleich (Ausschlüsse) erstellen

In der OCI-Konsole können Sie Objektnamensfilter angeben, um Objekte nach inversem Musterabgleich (Ausschluss) zu löschen, d.h. alle Objekte löschen, mit Ausnahme der Objekte, die mit dem Muster übereinstimmen. Der folgende Screenshot zeigt eine Lebenszyklusregel, mit der alle Elemente mit Ausnahme der Dateitypen .txt gelöscht werden.

Lebenszyklusregelkonsolenmusterausschluss erstellen

Sie können auch alle Dateien löschen, mit Ausnahme der Dateien, die einem bestimmten Muster entsprechen, aus der OCI-CLI.

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

Beispiel: Mit dem folgenden OCI-CLI-Befehl wird eine Lebenszyklusregel erstellt/aktualisiert, mit der alle Objekte mit Ausnahme von TXT-Dateitypen gelöscht werden.

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"
    }
]'

Danksagungen

Weitere Lernressourcen

Sehen Sie sich andere Übungen zu docs.oracle.com/learn an, oder greifen Sie auf weitere Inhalte zu kostenlosen Lernangeboten im Oracle Learning YouTube-Kanal zu. Besuchen Sie außerdem education.oracle.com/learning-explorer, um Oracle Learning Explorer zu werden.

Produktdokumentation finden Sie unter Oracle Help Center.