Objets Object Storage

Découvrez comment gérer les objets Object Storage, qui sont des fichiers ou des données non structurées que vous pouvez télécharger vers un bucket Object Storage vers un compartiment.

Dans le service Object Storage, un objet est un fichier ou des données non structurées que vous téléchargez vers un bucket dans un compartiment au sein d'un espace de noms Object Storage. Il peut s'agir de n'importe quel type de données, par exemple des fichiers multimédias, des sauvegardes de données, du contenu Web statique ou des journaux. Vous pouvez stocker des objets pouvant aller jusqu'à 10 Tio. Les objets sont traités en tant qu'entité unique. Vous ne pouvez pas modifier ni ajouter des données à un objet, mais vous pouvez remplacer l'intégralité de l'objet.

Object Storage permet la gestion des versions des objets, ce qui crée une copie accessible et téléchargeable d'une version particulière d'un objet téléchargé vers un bucket. La gestion des versions d'objet protège les objets contre les opérations d'écriture ou de suppression accidentelles ou malveillantes. Pour plus d'informations, reportez-vous à Gestion des versions d'Object Storage.

Les rubriques suivantes décrivent la gestion des objets dans un seul bucket. Pour plus d'informations sur la copie d'un objet vers un autre bucket, reportez-vous à Copie d'objets.

Vous pouvez effectuer les tâches d'objet Object Storage suivantes :

Vous pouvez effectuer certaines tâches sur un groupe d'objets à la fois à l'aide de l'interface de ligne de commande. Pour plus d'informations, reportez-vous à Tâches d'objet en masse.

Stratégie IAM requise

Pour utiliser Oracle Cloud Infrastructure, un administrateur doit vous accorder un accès sécurisé dans une stratégie. Cet accès est requis que vous utilisiez la console ou l'API REST avec un kit SDK, l'interface de ligne de commande ou un autre outil. Si un message vous indique que vous ne disposez pas des droits d'accès ou des autorisations nécessaires, vérifiez auprès de l'administrateur le type d'accès qui vous a été accordé et le compartiment dans lequel vous devez travailler.

Si vous ne connaissez pas les stratégies, reportez-vous à Introduction aux stratégies et à Stratégies courantes.

Pour les administrateurs :

  • La stratégie Autoriser les administrateurs Object Storage à gérer des buckets et des objets permet au groupe indiqué de réaliser toutes les actions possibles sur les buckets et les objets. Les objets résident toujours dans le même compartiment que le bucket.

  • Si vous devez écrire une stratégie plus restrictive pour les objets, inspect objects permet de répertorier tous les objets d'un bucket et d'effectuer une opération HEAD pour un objet particulier. En comparaison, read objects permet de télécharger l'objet lui-même.

  • Pour créer des stratégies plus restrictives qui accordent des droits d'accès individuels, procédez comme suit :

    • OBJECT_VERSION_DELETE est requis pour supprimer des versions d'objet précédentes en votre nom à l'aide de stratégies de cycle de vie.

    • OBJECT_UPDATE_TIER est requis pour modifier le niveau de stockage d'un objet.

Pour plus d'informations sur les droits d'accès utilisateur Object Storage, reportez-vous à Détails relatifs à Object Storage, Archive Storage et Data Transfer.

Stratégies IAM pour les objets

Parfois, le contrôle d'accès au niveau du bucket est insuffisant pour répondre à vos besoins en matière de sécurité. Au lieu de cela, il est nécessaire d'avoir un contrôle plus précis au niveau d'un groupe d'objets individuel ou basé sur un préfixe ou un suffixe. Par exemple, si vous faites partie d'un groupe autorisé pour un objet spécifique à obtenir une demande de travail, vous avez besoin d'une stratégie IAM Identity and Access Management qui accorde explicitement des droits d'accès à cette opération.

Les stratégies IAM de niveau objet vous permettent d'accorder des droits d'accès à des objets et sous-ensembles d'objets spécifiques dans un bucket Object Storage. La variable de stratégie IAM target.object.name vous permet d'appliquer des autorisations et des droits d'accès aux objets, comme vous pouvez le faire avec les locations, les compartiments et les buckets. Par exemple :

ALLOW GROUP object-authZ-op-group-ost-object TO manage objects IN TENANCY where any {target.object.name = 'ost-object-*', request.operation = 'GetObject'}

Les stratégies IAM de niveau objet sont particulièrement utiles pour les cas d'utilisation du Big Data et du lac de données dans lesquels un seul bucket comporte de nombreux ensembles de données différents et est accessible par plusieurs équipes ou charges globales.

Pour créer des stratégies IAM de niveau objet, suivez les étapes décrites dans Création d'une stratégie. Ajoutez des instructions de stratégie pour IAM de niveau objet à l'aide de la syntaxe suivante :

ALLOW GROUP <group> TO manage objects IN TENANCY where all {target.object.name = '<object-pattern>', target.bucket.name = '<bucket_name>'}

L'autorisation est évaluée pour les stratégies IAM de niveau objet lorsque la demande arrive pour un objet sur le serveur.

Remarque

Vous avez besoin de droits d'accès pour répertorier les buckets d'un compartiment et les objets d'un bucket afin de répertorier les modèles d'objet ou d'objet spécifiques lors de l'utilisation de la console. Vous devez disposer des autorisations READ pour accéder aux objets répertoriés.

Si le nom ou le chemin de l'objet est déjà connu et est accessible à l'aide de l'interface de ligne de commande ou de l'API, vous n'avez pas besoin de ces droits d'accès au compartiment ou au bucket.

Remarque

Le délai d'entrée en vigueur des stratégies d'objet que vous appliquez peut être de plusieurs minutes. Ce délai s'applique à toutes les stratégies que vous créez ou mettez à jour qui contrôlent l'accès aux ressources Object Storage.

Vous pouvez également mettre à jour une stratégie existante pour inclure des droits d'accès IAM de niveau objet. Reportez-vous à Mise à jour des instructions d'une stratégie. Les stratégies IAM de niveau objet sont compatibles avec toutes les structures de stratégie existantes.

Exemple 1 : Autoriser l'accès complet à un groupe pour un dossier dans un bucket :

ALLOW group test-group TO manage objects IN TENANCY where all {target.bucket.name = 'test-bucket', target.object.name = 'prod/*'} 

Exemple 2 : Autoriser l'accès en lecture seule à un groupe pour un dossier dans 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'}}

Exemple 3 : Autoriser l'écriture unique (sans écrasement) et aucun accès en lecture ou en suppression à un groupe pour un dossier :

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

Exemple 4 : Autoriser l'accès en lecture et en écriture à un groupe pour un dossier dans un bucket (sans liste ni remplacement) :

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

Exemple 5 : autorisation de tous les accès pour un utilisateur spécifique pour un modèle d'objet dans 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'}

Demandes pré-authentifiées

Les demandes pré-authentifiées permettent aux utilisateurs d'accéder à un bucket ou à un objet sans utiliser leurs propres informations d'identification. Par exemple, vous pouvez créer une demande qui permet à un utilisateur de télécharger des sauvegardes vers un bucket sans qu'il soit propriétaire de clés d'API. Pour plus d'informations, reportez-vous à Demandes pré-authentifiées Object Storage.

Noms d'objet

Contrairement aux autres ressources, les objets n'ont pas d'identificateur Oracle Cloud (OCID). A la place, les utilisateurs définissent un nom d'objet lorsqu'ils téléchargent un objet.

Lorsque vous attribuez un nom à un objet, respectez les consignes suivantes :

  • Utilisez entre 1 et 1 024 caractères.

  • Les caractères valides sont les lettres (majuscules ou minuscules), les chiffres et les caractères autres que le saut de ligne, le retour chariot et les valeurs NULL.

    Important

    Les noms d'objet et de bucket sont sensibles à la casse. Pour Object Storage, q3-field-assets.xslx et Q3-Field-Assets.XSLX sont des objets distincts.

  • Utilisez uniquement des caractères Unicode pour lesquels l'encodage UTF-8 ne dépasse pas 1024 octets. Les clients sont responsables des caractères d'encodage des URL.

  • Evitez de saisir des informations confidentielles.

  • Utilisez un nom unique dans le bucket. N'utilisez pas le nom d'un objet existant dans le bucket, sauf si vous souhaitez écraser l'objet existant avec le contenu du nouvel objet ou de l'objet renommé.

Conseil

Les noms d'objet peuvent inclure des barres obliques (/). Pour plus d'informations sur l'utilisation de la barre oblique dans les noms d'objet afin de créer des hiérarchies, reportez-vous à Dénomination des objets à l'aide de préfixes et de hiérarchies.

Dénomination des objets à l'aide de préfixes et de hiérarchies

Dans un espace de noms Object Storage, les buckets et les objets figurent dans une structure plate. Cependant, vous pouvez simuler une structure de répertoires en ajoutant une chaîne de préfixe qui inclut des barres obliques (/) à un nom d'objet. Vous pouvez ainsi afficher un répertoire à la fois, ce qui est utile lorsque vous parcourez un grand ensemble d'objets.

Par exemple :

marathon/finish_line.jpg
marathon/participants/p_21.jpg

Si vous avez ajouté un préfixe à des noms d'objet, vous pouvez effectuer les opérations suivantes :

  • Utiliser l'interface de ligne de commande ou l'API pour effectuer des téléchargements en local et des suppressions en masse de tous les objets à un niveau spécifique de la hiérarchie.

  • Utiliser la console pour afficher une vue hiérarchique de vos objets dans les dossiers virtuels. Dans l'exemple précédent, marathon est affiché en tant que dossier contenant un objet nommé finish_line.jpg et participants constitue un sous-dossier de marathon, contenant un objet nommé p_21.jpg. Vous pouvez télécharger en masse des objets vers n'importe quel niveau de la hiérarchie et effectuer des suppressions en masse de tous les objets dans un bucket ou un dossier.

Les opérations en masse à un niveau donné de la hiérarchie n'ont aucune incidence sur les objets des niveaux précédents.

Lorsque vous attribuez des noms à des objets, vous pouvez également utiliser des chaînes de préfixe sans délimiteur. En l'absence de délimiteurs, le préfixe du nom d'objet servirait pour la mise en correspondance lors d'opérations de recherche dans la console ainsi que lors de certaines opérations en masse dans la ligne de commande ou l'API. Par exemple, dans les noms d'objet ci-dessous, la chaîne gloves_27_ peut servir de préfixe à des fins de mise en correspondance lors d'opérations en masse :

gloves_27_dark_green.jpg
gloves_27_light_blue.jpg	

Lorsque vous effectuez des téléchargements en masse avec la console, l'interface de ligne de commande ou l'API, vous pouvez ajouter une chaîne de préfixe au début des noms des fichiers téléchargés.

Pour plus d'informations sur la hiérarchie et la chaîne de préfixe d'une interface de gestion spécifique, reportez-vous aux tâches individuelles dans Buckets Object Storage.

Métadonnées et en-têtes de réponse facultatifs

Lorsque vous téléchargez des objets vers le serveur, vous pouvez fournir des métadonnées définies par l'utilisateur et des en-têtes de réponse facultatifs. Les en-têtes de réponse sont des en-têtes HTTP envoyés par Object Storage aux clients Object Storage lors du téléchargement en local d'objets. Les métadonnées définies par l'utilisateur sont des paires nom-valeur stockées avec un objet. Vous pouvez utiliser la console, l'API REST ou l'interface de ligne de commande pour fournir ces attributs facultatifs.

Important

Aucune validation n'est effectuée sur les en-têtes de réponse ou les métadonnées que vous fournissez.

Vous pouvez indiquer des valeurs pour les en-têtes de réponse suivants :

  • Content-Disposition

    Définit les informations de l'objet relatives à la présentation uniquement. La spécification des valeurs de cet en-tête n'a aucune incidence sur le comportement d'Object Storage. Les programmes qui lisent l'objet décident de ce qu'ils doivent faire en fonction de la valeur fournie. Par exemple, vous pouvez utiliser cet en-tête pour permettre aux utilisateurs de télécharger en local des objets avec des noms de fichier personnalisés dans un navigateur :

    attachment; filename="fname.ext"

    Reportez-vous à https://tools.ietf.org/html/rfc2616#section-19.5.1 pour plus d'informations.

  • Cache-Control

    Définit le comportement de mise en mémoire cache de l'objet. La spécification des valeurs de cet en-tête n'a aucune incidence sur le comportement d'Object Storage. Les programmes qui lisent l'objet décident de ce qu'ils doivent faire en fonction de la valeur fournie. Vous pouvez, par exemple, utiliser cet en-tête pour identifier les objets nécessitant des restrictions de mise en mémoire cache :

    no-cache, no-store

    Reportez-vous à https://tools.ietf.org/html/rfc2616#section-14.9 pour plus d'informations.

Vous indiquez les métadonnées définies par l'utilisateur sous la forme de paires nom-valeur. Les noms des métadonnées définies par l'utilisateur sont stockés et renvoyés aux clients Object Storage avec le préfixe obligatoire opc-meta-.

Gestion du cycle de vie des objets

La gestion du cycle de vie des objets vous permet de gérer automatiquement la suppression des téléchargements multipart non validés, le déplacement d'objets vers un autre niveau de stockage et la suppression des ressources prises en charge en votre nom dans un bucket donné. Ces actions automatisées reposent sur des règles que vous définissez et gérez. Pour plus d'informations sur cette fonctionnalité, reportez-vous à Gestion du cycle de vie des objets Object Storage.

Téléchargement multipart vers le serveur et en local

Le service Oracle Cloud Infrastructure Object Storage prend en charge le téléchargement multipart vers le serveur et en local pour les objets.

Surveillance des ressources

Vous pouvez surveiller l'état, la capacité et les performances de vos ressources Oracle Cloud Infrastructure à l'aide de mesures, d'alarmes et de notifications. Pour plus d'informations, reportez-vous à Monitoring et à Notifications.

Pour plus d'informations sur la surveillance des objets, reportez-vous à Mesures d'Object Storage.

Création de l'automatisation pour les objets à l'aide du service Events

Vous pouvez créer une automatisation en fonction des modifications d'état apportées aux ressources Oracle Cloud Infrastructure à l'aide de types d'événement, de règles et d'actions. Pour plus d'informations, reportez-vous à Présentation d'Events.