Objets de stockage d'objets

Découvrez comment manageObject Objets de stockage, qui sont des fichiers ou des données non structurées que vous pouvez charger dans un seau de stockage d'objets vers un compartiment.

Dans le service de stockage d'objets, un objet est un fichier ou des données non structurées que vous chargez dans un seau d'un compartiment dans un espace de noms du service de stockage d'objets. L'objet peut représenter 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 jusqu'à 10 Tio. Les objets sont traités en tant qu'entité unique. Vous ne pouvez ni modifier ni ajouter des données à un objet, mais vous pouvez remplacer l'intégralité de l'objet.

Le service de stockage d'objets permet le contrôle des versions d'objets, ce qui crée une copie accessible et téléchargeable d'une version particulière d'un objet que vous avez chargé dans un seau. Le contrôle des versions d'objet protège les objets contre le remplacement ou la suppression accidentels ou malveillants. Pour plus d'informations, voir Contrôle des versions du service de stockage d'objets.

Ces rubriques décrivent comment gérer les objets d'un seul seau. Pour plus d'informations sur la copie d'un objet vers un autre seau, voir Copie d'objets.

Tâches de l'objet

Vous pouvez effectuer les tâches suivantes liées aux objets de stockage d'objets :

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, voir Tâches d'objet en masse.

Politique GIA requise

Pour utiliser Oracle Cloud Infrastructure, un administrateur doit être membre d'un groupe auquel l'accès de sécurité est accordé dans une politique par un administrateur de location. Cet accès est requis que vous utilisiez la console ou l'API REST avec une trousse SDK, l'interface de ligne de commande ou un autre outil. Si vous obtenez un message indiquant que vous ne disposez pas de l'autorisation requise, vérifiez auprès de l'administrateur de la location quel type d'accès vous avez et dans quel compartiment votre accès fonctionne.

Pour en savoir plus sur les politiques, voir Gestion des domaines d'identité et Politiques communes.

Pour les administrateurs :

  • La politique Permettre aux administrateurs du stockage d'objets de gérer les seaux et les objets permet au groupe spécifié d'effectuer toutes les opérations sur les seaux et les objets. Les objets se trouvent toujours dans le même compartiment que le seau.

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

  • Pour créer des politiques plus restrictives qui accordent des autorisations individuelles :

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

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

Voir Informations détaillées sur les services de stockage d'archives, de stockage d'objets et de transfert de données pour plus d'informations sur les autorisations d'utilisateur du service Stockage d'objets.

Politiques IAM pour les objets

Parfois, le contrôle d'accès au niveau du seau est insuffisant pour vos besoins de sécurité. Au lieu de cela, il est nécessaire d'avoir un contrôle plus granulaire sur un groupe d'objets individuel ou basé sur des préfixes ou des suffixes. 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 politique IAM de gestion des identités et des accès qui autorise explicitement cette opération.

Les politiques IAM au niveau de l'objet vous permettent d'accorder des autorisations pour des objets et des sous-ensembles d'objets spécifiques dans un seau de stockage d'objets. La variable de politique IAM target.object.name vous permet d'appliquer des autorisations et des autorisations aux objets, comme vous pouvez le faire avec les locations, les compartiments et les seaux. 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 politiques IAM au niveau de l'objet sont particulièrement utiles pour les cas d'utilisation de mégadonnées et de lac de données où un seul compartiment comporte de nombreux jeux de données différents et est accessible par plusieurs équipes ou charges de travail.

Pour créer des politiques IAM au niveau de l'objet, suivez les étapes décrites sous Création d'une politique. Ajoutez des énoncés de politique pour le service IAM au niveau de l'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 politiques IAM au niveau de l'objet lorsque la demande arrive pour un objet sur le serveur.

Note

Vous devez disposer d'autorisations pour lister les seaux d'un compartiment et lister les objets d'un seau afin de lister 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 accessible à l'aide de l'interface de ligne de commande ou de l'API, vous n'avez pas besoin de ces autorisations d'accès au compartiment ou au seau.

Note

Il peut y avoir un délai de plusieurs minutes pour que les politiques d'objet que vous appliquez prennent effet. Ce délai s'applique à toutes les politiques que vous créez ou mettez à jour qui contrôlent l'accès aux ressources de stockage d'objets.

Vous pouvez également mettre à jour une politique existante pour inclure des autorisations IAM au niveau de l'objet. Voir Mise à jour des énoncés d'une politique. Les politiques IAM au niveau de l'objet sont compatibles avec toutes les structures de politique existantes.

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

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 seau :

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'accès en écriture unique (sans remplacement) et l'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 seau (aucune liste ni aucun 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 à un modèle d'objet dans un seau :

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 seau ou à un objet sans disposer de données d'identification qui leur sont propres. Par exemple, vous pouvez créer une demande qui permet à un utilisateur de charger des sauvegardes dans un seau sans qu'il détienne des clés d'API. Voir Demandes préauthentifiées de stockage d'objets pour plus de détails.

Noms d'objet

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

Utilisez les directives suivantes lors de l'attribution de nom à un objet :

  • Utilisez de 1 à 1 024 caractères.

  • Les caractères valides sont les lettres (haute ou minuscule), les chiffres et les caractères autres que l'alimentation de la ligne, le retour de chariot et la valeur NULL.

    Important

    Les noms de seau et d'objet sont sensibles à la casse. Le stockage d'objets traite q3-field-assets.xslx et Q3-Field-Assets.XSLX en tant qu'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 d'URL.

  • Évitez d'entrer des informations confidentielles.

  • Le nom doit être unique dans le seau. N'utilisez pas le nom d'un objet existant dans le seau lorsque vous nommez un objet, sauf si vous avez l'intention de remplacer l'objet existant par le contenu d'un objet nouveau ou renommé.

Conseil

Les noms d'objet peuvent comporter une ou plusieurs barres obliques (/) dans leur nom. Voir Attribution de nom aux objets à l'aide des préfixes et des hiérarchies pour plus d'informations sur l'utilisation de la barre oblique dans les noms d'objet afin de créer des hiérarchies.

Attribution de nom aux objets à l'aide des préfixes et des hiérarchies

Dans un espace de noms de stockage d'objets, les seaux et les objets existent dans une structure simple. Toutefois, vous pouvez simuler une structure de répertoire en ajoutant une chaîne de préfixe comprenant une ou plusieurs barres obliques (/) à un nom d'objet. Cela vous permet de lister un répertoire à la fois, ce qui est utile lors de la navigation dans un grand jeu d'objets.

Par exemple :

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

Si vous avez ajouté des préfixes aux noms d'objet, vous pouvez :

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

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

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

Lors de l'attribution de nom aux objets, vous pouvez également utiliser des chaînes de préfixe sans délimiteur. Aucun délimiteur ne permet aux opérations de recherche dans la console et à certaines opérations en masse dans la ligne de commande ou l'API d'effectuer une mise en correspondance avec la partie préfixe du nom d'objet 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 de l'exécution des opérations en masse :

gloves_27_dark_green.jpg
gloves_27_light_blue.jpg	

Lorsque vous effectuez des chargements en masse avec la console, l'interface de ligne de commande ou l'API, vous pouvez ajouter une chaîne de préfixe aux noms des fichiers que vous chargez.

Pour les détails de chaîne de hiérarchie et de préfixe d'une interface de gestion particulière, voir les tâches individuelles dans Compartiments de stockage d'objets.

En-têtes de réponse facultatifs et métadonnées

Lorsque vous chargez des objets, vous pouvez fournir des en-têtes de réponse facultatifs et des métadonnées définies par l'utilisateur. Les en-têtes de réponse sont des en-têtes HTTP envoyés par le service de stockage d'objets aux clients du stockage d'objets lors du téléchargement des 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 spécifier des valeurs pour les en-têtes de réponse suivants :

  • Content-Disposition (Disposition du contenu)

    Définit les informations sur la présentation uniquement pour l'objet. L'indication de valeurs pour cet en-tête n'a aucun effet sur le comportement du stockage d'objets. Les programmes qui lisent l'objet décident de la marche à suivre en fonction de la valeur indiquée. Par exemple, pour permettre aux utilisateurs de télécharger des objets avec des noms de fichier personnalisés dans un navigateur, vous pouvez utiliser cet en-tête :

    attachment; filename="fname.ext"

    Pour plus d'informations, voir https://tools.ietf.org/html/rfc2616#section-19.5.1.

  • Cache-Control (Contrôle du cache)

    Définit le comportement de la mise en mémoire cache pour l'objet. L'indication de valeurs pour cet en-tête n'a aucun effet sur le comportement du stockage d'objets. Les programmes qui lisent l'objet décident de la marche à suivre en fonction de la valeur indiquée. Par exemple, pour identifier les objets qui nécessitent des restrictions de mise en mémoire cache, vous pouvez utiliser cet en-tête :

    no-cache, no-store

    Pour plus d'informations, voir https://tools.ietf.org/html/rfc2616#section-14.9.

Vous spécifiez les métadonnées définies par l'utilisateur sous forme de paires nom-valeur. Les noms de métadonnées définis par l'utilisateur sont stockés et retournés aux clients de stockage d'objets 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 chargements en plusieurs parties non validés, le déplacement des objets vers un niveau de stockage différent et la suppression des ressources prises en charge en votre nom dans un seau indiqué. Ces actions automatisées sont basées sur des règles que vous définissez et gérez. Voir Gestion du cycle de vie des objets du service de stockage d'objets pour plus d'informations sur cette fonction.

Chargement et téléchargement en plusieurs parties

Le service Stockage d'objets pour Oracle Cloud Infrastructure prend en charge le chargement et le téléchargement en plusieurs parties des objets.

Surveillance des ressources

Vous pouvez surveiller l'état, la capacité et la performance des ressources Oracle Cloud Infrastructure à l'aide de mesures, d'alarmes et d'avis. Pour plus d'informations, voir Surveillance et Avis.

Pour plus d'informations sur la surveillance des objets, voir Mesures du service de stockage d'objets.

Automatisation des objets à l'aide du service Événements

Vous pouvez créer l'automatisation en fonction des modifications d'état des ressources Oracle Cloud Infrastructure en utilisant des types d'événement, des règles et des actions. Pour plus d'informations, voir Aperçu des événements.