Objektspeicherobjekte
Erfahren Sie, wie Sie manageObject-Speicherobjekte erstellen, bei denen es sich um Dateien oder unstrukturierte Daten handelt, die Sie in einen Objektspeicher-Bucket in ein Compartment hochladen können.
Im Object Storage-Service ist ein Objekt eine Datei oder unstrukturierte Daten, die Sie in einem Compartment innerhalb eines Object Storage-Namespace in einen Bucket hochladen. Bei dem Objekt kann es sich um einen beliebigen Datentyp handeln, wie Multimediadateien, Datenbackups, statische Webinhalte oder Logs. Sie können Objekte mit bis zu 10 TiB speichern. Objekte werden als einzelne Entitys verarbeitet. Sie können Objekte nicht bearbeiten oder Daten anhängen. Sie können jedoch das gesamte Objekt ersetzen.
Object Storage ermöglicht die Versionierung von Objekten. Dadurch wird eine zugängliche und herunterladbare Kopie einer bestimmten Version eines Objekts erstellt, das Sie in einen Bucket hochgeladen haben. Die Objektversionierung schützt Objekte vor versehentlichem oder bösartigem Überschreiben oder Löschen. Weitere Informationen finden Sie unter Object Storage-Versionierung.
In diesen Themen wird beschrieben, wie Objekte innerhalb eines einzelnen Bucket verwaltet werden. Unter Objekte kopieren wird beschrieben, wie Sie Objekte in einen anderen Bucket kopieren.
Objektaufgaben
Sie können die folgenden Object Storage-Objektaufgaben ausführen:
-
Ordner und Unterordner in einem Bucket erstellen und löschen
-
Objekte in einem Bucket basierend auf dem Präfix des Objektnamens suchen
-
Status eines Objekts prüfen, das aus Archive Storage wiederhergestellt wird
-
Dateisystemverzeichnis mit Objekten in einem Bucket synchronisieren
Mit der Befehlszeilenschnittstelle können Sie bestimmte Aufgaben für eine Gruppe von Objekten gleichzeitig ausführen. Weitere Informationen finden Sie unter Aufgaben für Massenobjekte.
Erforderliche IAM-Policy
Um Oracle Cloud Infrastructure verwenden zu können, muss ein Administrator Mitglied einer Gruppe sein, der von einem Mandantenadministrator Sicherheitszugriff in einer Policy erteilt wurde. Dieser Zugriff ist unabhängig davon erforderlich, ob Sie die Konsole oder die REST-API mit einem SDK, einer CLI oder einem anderen Tool verwenden. Wenn Sie eine Nachricht erhalten, dass Sie keine Berechtigung haben oder nicht autorisiert sind, fragen Sie den Mandantenadministrator, welcher Zugriffstyp Ihnen erteilt wurde und in welchem Compartment Ihr Zugriff funktioniert.
Wenn Sie mit Policys nicht vertraut sind, finden Sie weitere Informationen unter Identitätsdomains verwalten und Allgemeine Policys.
Für Administratoren:
-
Mit der Policy Verwalten von Buckets und Objekten durch Object Storage-Administratoren zulassen kann die angegebene Gruppe mit den Buckets und Objekten uneingeschränkt arbeiten. Objekte befinden sich immer im selben Compartment wie der Bucket.
-
Wenn Sie eine einschränkendere Policy für Objekte schreiben müssen, können Sie mit
inspect objects
alle Objekte in einem Bucket auflisten und für ein bestimmtes Objekt einen HEAD-Vorgang ausführen. Mitread objects
können Sie hingegen das Objekt selbst herunterladen. -
So erstellen Sie restriktivere Policys, die einzelne Berechtigungen erteilen:
-
OBJECT_VERSION_DELETE ist erforderlich, um vorherige Objektversionen in Ihrem Namen mit Lebenszyklus-Policys zu löschen.
-
OBJECT_UPDATE_TIER ist erforderlich, um die Storage Tier eines Objekts zu ändern.
-
Weitere Informationen zu den Benutzerberechtigungen für Object Storage finden Sie unter Details zu Object Storage, Archive Storage und Data Transfer.
IAM-Policys für Objekte
Manchmal reicht eine Zugriffskontrolle auf Bucket-Ebene nicht aus, um Ihre Sicherheitsanforderungen zu erfüllen. Stattdessen ist eine granularere Kontrolle bei einer einzelnen oder Präfix- oder Suffix-basierten Objektgruppe erforderlich. Beispiel: Wenn Sie Teil einer Gruppe sind, die für ein bestimmtes Objekt autorisiert ist, eine Arbeitsanforderung abzurufen, benötigen Sie eine Identity and Access Management-IAM-Policy, die explizit Berechtigungen für diesen Vorgang erteilt.
Mit IAM-Policys auf Objektebene können Sie bestimmten Objekten und Untergruppen von Objekten in einem Objektspeicher-Bucket Berechtigungen erteilen. Mit der IAM-Policy-Variablen target.object.name
können Sie Autorisierung und Berechtigungen auf Objekte anwenden, ähnlich wie bei Mandanten, Compartments und Buckets. Beispiel:
ALLOW GROUP object-authZ-op-group-ost-object TO manage objects IN TENANCY where any {target.object.name = 'ost-object-*', request.operation = 'GetObject'}
IAM-Policys auf Objektebene sind besonders nützlich für Big Data- und Data Lake-Anwendungsfälle, bei denen ein einzelner Bucket viele verschiedene Datasets enthält und auf die mehrere Teams oder Workloads zugreifen.
Um IAM-Policys auf Objektebene zu erstellen, führen Sie die Schritte aus, wie unter Policy erstellen beschrieben. Fügen Sie Policy-Anweisungen für IAM auf Objektebene mit der folgenden Syntax hinzu:
ALLOW GROUP <group> TO manage objects IN TENANCY where all {target.object.name = '<object-pattern>', target.bucket.name = '<bucket_name>'}
Die Autorisierung wird für IAM-Policys auf Objektebene ausgewertet, wenn die Anforderung für ein Objekt auf dem Server eingeht.
Sie benötigen Berechtigungen zum Auflisten der Buckets in einem Compartment und zum Auflisten der Objekte in einem Bucket, um die spezifischen Objekt- oder Objektmuster bei Verwendung der Konsole aufzulisten. Sie benötigen READ-Berechtigungen, um auf die aufgeführten Objekte zugreifen zu können.
Wenn der Objektname oder -pfad bereits bekannt ist und über die CLI oder API darauf zugegriffen wird, benötigen Sie keine Compartment- oder Bucket-Zugriffsberechtigungen.
Für alle Objekt-Policys, die Sie anwenden, kann es zu einer Verzögerung von mehreren Minuten kommen. Diese Verzögerung gilt für alle Policys, die Sie erstellen oder aktualisieren und die den Zugriff auf Object Storage-Ressourcen steuern.
Sie können eine vorhandene Policy auch aktualisieren, um IAM-Berechtigungen auf Objektebene einzuschließen. Siehe Anweisungen einer Policy aktualisieren. IAM-Policys auf Objektebene sind mit allen vorhandenen Policy-Konstrukten kompatibel.
Beispiel 1: Vollständigen Zugriff auf eine Gruppe für einen Ordner in einem Bucket zulassen:
ALLOW group test-group TO manage objects IN TENANCY where all {target.bucket.name = 'test-bucket', target.object.name = 'prod/*'}
Beispiel 2: Schreibgeschützten Zugriff auf eine Gruppe für einen Ordner in einem Bucket zulassen:
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'}}
Beispiel 3: Einmaliges Schreiben (keine Überschreibungen) und kein Lese- oder Löschzugriff auf eine Gruppe für einen Ordner zulassen:
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'}}
Beispiel 4: Lese- und Schreibzugriff auf eine Gruppe für einen Ordner in einem Bucket zulassen (keine Auflistung oder Überschreibung):
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'}}
Beispiel 5: Gesamten Zugriff für einen bestimmten Benutzer für ein Objektmuster in einem Bucket zulassen:
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'}
Vorab authentifizierte Anforderungen
Mit vorab authentifizierten Anforderungen können Benutzer auf einen Bucket oder ein Objekt zugreifen, ohne eigene Zugangsdaten zu besitzen. Beispiel: Sie können eine Anforderung erstellen, mit der Benutzer Backups in einen Bucket hochladen können, ohne Eigentümer von API-Schlüsseln zu sein. Weitere Informationen finden Sie unter Vorab authentifizierte Object Storage-Anforderungen.
Objektnamen
Im Gegensatz zu anderen Ressourcen haben Objekte keine Oracle Cloud-IDs (OCIDs). Benutzer legen stattdessen beim Hochladen eines Objekts einen Objektnamen fest.
Beachten Sie die folgenden Richtlinien beim Benennen eines Objekts:
-
Verwenden Sie zwischen 1 und 1024 Zeichen.
-
Gültige Zeichen sind Buchstaben (Groß- oder Kleinbuchstaben), Zahlen und andere Zeichen als Zeilenvorschub, Wagenrücklauf und NULL.
Wichtig
Bei Bucket-Namen und -Objektnamen ist die Groß- und Kleinschreibung zu beachten. In Object Storage werden q3-field-assets.xslx und Q3-Field-Assets.XSLX als unterschiedliche Objekte behandelt.
-
Verwenden Sie nur Unicode-Zeichen, bei denen die UTF-8-Codierung 1024 Byte nicht überschreitet. Clients sind für die URL-Codierung von Zeichen verantwortlich.
-
Geben Sie keine vertraulichen Informationen ein.
-
Stellen Sie sicher, dass der Name innerhalb des Buckets eindeutig ist. Verwenden Sie beim Benennen eines Objekts nicht den Namen eines vorhandenen Objekts im Bucket, es sei denn, Sie möchten das vorhandene Objekt mit dem Inhalt des neuen oder umbenannten Objekts überschreiben.
Objektnamen können einen oder mehrere Schrägstriche (/) enthalten. Weitere Informationen zur Verwendung des Schrägstrichs in Objektnamen zum Erstellen von Hierarchien finden Sie unter Objektbenennung mit Präfixen und Hierarchien.
Objektbenennung mit Präfixen und Hierarchien
Innerhalb eines Object Storage-Namespace werden Buckets und Objekte in einer flachen Hierarchie vorgehalten. Sie können jedoch eine Verzeichnisstruktur simulieren, indem Sie eine Präfixzeichenfolge mit einem oder mehreren Schrägstrichen (/) zu einem Objektnamen hinzufügen. Auf diese Weise können Sie jeweils ein Verzeichnis auflisten, das beim Navigieren einer großen Gruppe von Objekten hilfreich ist.
Beispiel:
marathon/finish_line.jpg
marathon/participants/p_21.jpg
Wenn Sie Objektnamen mit Präfixen versehen haben, haben Sie folgende Möglichkeiten:
-
Sie können Bulkdownloads und Bulklöschvorgänge aller Objekte auf einer bestimmten Hierarchieebene über die CLI oder API ausführen.
-
Sie können mit der Konsole eine hierarchische Ansicht Ihrer Objekte in virtuellen Ordnern anzeigen. Im vorherigen Beispiel würde
marathon
als Ordner mit einem Objekt namensfinish_line.jpg
angezeigt, undparticipants
wäre ein Unterordner vonmarathon
, der ein Objekt namensp_21.jpg
enthält. Sie können Objekte gesammelt auf jede Hierarchieebene hochladen und ebenso Löschungen aller Objekte gesammelt in einem Bucket oder Ordner durchführen.
Bulkvorgänge auf einer bestimmten Ebene der Hierarchie wirken sich nicht auf Objekte auf einer vorherigen Ebene aus.
Bei der Benennung von Objekten können Sie auch Präfixzeichenfolgen ohne Begrenzungszeichen verwenden. Ohne Begrenzungszeichen sind Suchvorgänge in der Konsole und bestimmte Bulkvorgänge in der CLI oder API bei Übereinstimmungen mit dem Präfixteil des Objektnamens möglich. In den folgenden Objektnamen kann beispielsweise die Zeichenfolge gloves_27_
bei Bulkvorgängen als Präfix zu Abgleichszwecken dienen:
gloves_27_dark_green.jpg
gloves_27_light_blue.jpg
Wenn Sie Bulkuploads mit der Konsole, CLI oder API durchführen, können Sie den Namen der Dateien, die Sie hochladen, eine Präfixzeichenfolge vorgeben.
Details zu Hierarchie- und Präfixzeichenfolgen für eine bestimmte Managementschnittstelle finden Sie in den einzelnen Aufgaben in Object Storage-Buckets.
Optionale Antwortheader und Metadaten
Wenn Sie Objekte hochladen, können Sie optionale Antwortheader und benutzerdefinierte Metadaten angeben. Antwortheader sind HTTP-Header, die von Object Storage an Object Storage-Clients gesendet werden, wenn Objekte heruntergeladen werden. Benutzerdefinierte Metadaten sind Name/Wert-Paare, die mit einem Objekt gespeichert werden. Sie können diese optionalen Attribute mit der Konsole, der REST-API oder der CLI bereitstellen.
Für die angegebenen Antwortheader oder Metadaten wird keine Validierung vorgenommen.
Sie können Werte für die folgenden Antwortheader angeben:
-
Content-Disposition
Definiert nur Präsentationsinformationen für das Objekt. Die Angabe von Werten für diesen Header wirkt sich nicht auf das Object Storage-Verhalten aus. Programme, die das Objekt lesen, entscheiden basierend auf dem angegebenen Wert, was zu tun ist. Beispiel: Mit diesem Header können Sie Benutzern erlauben, Objekte mit benutzerdefinierten Dateinamen in einem Browser herunterzuladen:
attachment; filename="fname.ext"
Weitere Informationen finden Sie unter https://tools.ietf.org/html/rfc2616#section-19.5.1.
-
Cache-Control
Definiert das Caching-Verhalten für das Objekt. Die Angabe von Werten für diesen Header wirkt sich nicht auf das Object Storage-Verhalten aus. Programme, die das Objekt lesen, entscheiden basierend auf dem angegebenen Wert, was zu tun ist. Beispiel: Sie können diesen Header verwenden, um Objekte zu identifizieren, die Caching-Einschränkungen erfordern:
no-cache, no-store
Weitere Informationen finden Sie unter https://tools.ietf.org/html/rfc2616#section-14.9.
Sie geben benutzerdefinierte Metadaten in Form von Name/Wert-Paaren an. Benutzerdefinierte Metadatennamen werden gespeichert und an Object Storage-Clients mit dem obligatorischen Präfix opc-meta- zurückgegeben.
Object Lifecycle Management
Mit Object Lifecycle Management können Sie das Löschen nicht festgeschriebener Multipart-Uploads, das Verschieben von Objekten in eine andere Storage Tier und das Löschen unterstützter Ressourcen in Ihrem Namen innerhalb eines bestimmten Buckets automatisch verwalten. Diese automatisierten Aktionen basieren auf Regeln, die Sie definieren und verwalten. Weitere Informationen zu diesem Feature finden Sie unter Object Storage Object Lifecycle Management.
Multipart-Uploads und -Downloads
Der Oracle Cloud Infrastructure Object Storage-Service unterstützt Multipart-Uploads und -Downloads von Objekten.
-
Informationen zur Funktion des mehrteiligen Uploads über die API und die CLI finden Sie unter Object Storage - Multipart-Uploads.
-
CLI-Informationen zu mehrteiligen Downloads finden Sie unter So laden Sie ein Objekt mit mehrteiligem Download herunter.
-
Eine entsprechende API-Dokumentation zu mehrteiligen Downloads finden Sie im GetObject-API-Aufruf und im zugehörigen Bereichsparameter range.
Ressourcen überwachen
Mit Metriken, Alarmen und Benachrichtigungen können Sie den Zustand, die Kapazität und die Performance von Oracle Cloud Infrastructure-Ressourcen überwachen. Weitere Informationen finden Sie unter Monitoring und Notifications.
Weitere Informationen zum Überwachen von Objekten finden Sie unter Object Storage-Metriken.
Automatisierung für Objekte mit dem Events-Service erstellen
Sie können Automatisierung basierend auf Statusänderungen für Oracle Cloud Infrastructure-Ressourcen erstellen, indem Sie Ereignistypen, Regeln und Aktionen verwenden. Weitere Informationen finden Sie unter Überblick über Events.