Données téléchargées

Une fois votre stockage organisé en compartiments, il est temps d'ajouter des objets en téléchargeant des données.

Selon la manière dont vous souhaitez utiliser votre stockage, il existe différentes façons d'insérer des données dans le système. Un spécialiste des données possède quelques gros fichiers qui sont utilisés à des fins d'analyse, un administrateur système doit assurer la synchronisation des sauvegardes de base de données et des fichiers locaux, et un développeur crée un logiciel qui doit lire et écrire des millions de fichiers. Chacun de ces scénarios est servi au mieux par différentes méthodes d'ingestion de données.

Certaines applications peuvent souhaiter limiter les droits d'un utilisateur ou d'un identifiant de service au seul envoi de données, sans lui accorder aucun droit de lecture sur les données contenues dans un compartiment. Cela est possible via le rôle IAM de l'éditeur d'objets.

Utilisation de la console

La console basée sur le Web n'est pas couramment employée pour utiliser Object Storage. Les objets sont limités à 200 Mo et le nom de fichier et la clé sont identiques. Plusieurs objets peuvent être envoyés par téléchargement en même temps, et si le navigateur autorise plusieurs unités d'exécution, chaque objet est envoyé par téléchargement en utilisant plusieurs parties en parallèle. La prise en charge des objets plus volumineux et des performances améliorées (en fonction des facteurs de réseau) est fournie par la fonction Transfert haut débit Aspera.

Utilisation d'un outil compatible

Certains utilisateurs souhaitent utiliser un utilitaire autonome pour interagir avec leur stockage. Etant donné que l'API Cloud Object Storage prend en charge l'ensemble le plus commun d'opérations API S3, de nombreux outils compatibles S3 peuvent également se connecter à Object Storage à l'aide des données d'identification HMAC.

Certains exemples incluent notamment des explorateurs de fichiers, tels que Cyberduck ou Transmit, des utilitaires de sauvegarde, tels que Cloudberry et Duplicati, des utilitaires de ligne de commande, tels que s3cmd ou Minio Client, etc. Vous pouvez également rechercher dans le catalogue IBM Cloud des services tiers qui vous permettent de transférer des données vers Cloud Object Storage, par exemple Lyve Data Transfer Services.

Utilisation de l'API

La plupart des applications de programmation d'Object Storage utilisent un SDK (par exemple, Java, node.js ou Python) ou l'API Cloud Object Storage. Les objets sont généralement envoyés par téléchargement en plusieurs parties, les tailles de partie et le nombre de parties étant configurés par une classe TransferManager.

Demandes conditionnelles

Lors d'une demande de lecture ou d'écriture de données, il est possible de définir des conditions sur cette demande afin d'éviter des opérations inutiles. Pour ce faire, on utilise les en-têtes « HTTP » préconditionnels suivants : If-Match, If-None-Match, If-Modified-Since et If-Unmodified-Since.

Il est généralement préférable d'utiliser If-Match , car la granularité de la valeur Last-Modified n'est exprimée qu'en secondes, ce qui peut s'avérer insuffisant pour éviter les conditions de concurrence dans certaines applications.

Utilisation If-Match

Lors d'une requête PUT, HEAD ou GET portant sur un objet, l'en-tête « If-Match » vérifie si l' Etag fourni (hachage MD5 du contenu de l'objet) correspond à la valeur Etag fournie. Si cette valeur correspond, l'opération se poursuit. Si la correspondance échoue, le système renvoie une erreur « 412 Precondition Failed ».

If-Match est le plus souvent utilisé avec les méthodes de changement d'état (par exemple, POST, PUT, DELETE) pour éviter les écrasements accidentels lorsque plusieurs agents utilisateur peuvent agir en parallèle sur la même ressource (c'est-à-dire pour éviter le problème de "mise à jour perdue").

Utilisation If-None-Match

Lors d'une requête PUT, HEAD ou GET portant sur un objet, l'en-tête « If-None-Match » vérifie si l' Etag fourni (hachage MD5 du contenu de l'objet) correspond à la valeur Etag fournie. Si cette valeur ne correspond pas, l'opération se poursuit. Si la correspondance est réussie, le système renvoie une erreur « 412 Precondition Failed » lors d'une requête PUT et une erreur « 304 Not Modified » lors d'une requête GET ou HEAD.

If-None-Match est principalement utilisé dans les demandes GET conditionnelles pour permettre des mises à jour efficaces des informations mises en cache avec un minimum de temps système de transaction. Lorsqu'un client souhaite mettre à jour une ou plusieurs réponses stockées comportant des balises d'entité, le client DOIT générer un champ d'en-tête If-None-Match contenant une liste de ces balises d'entité lors d'une demande GET. Cela permet aux serveurs destinataires d'envoyer une réponse 304 (Non modifiée) pour indiquer quand l'une de ces réponses stockées correspond à la représentation sélectionnée.

Utilisation If-Modified-Since

Lors d'une requête HEAD ou GET sur un objet, l'en-tête « If-Modified-Since » vérifie si la valeur « Last-Modified » de l'objet (par exemple Sat, 14 March 2020 19:43:31 GMT) est plus récente qu'une valeur fournie. Si l'objet a été modifié, l'opération se poursuit. Si l'objet n'a pas été modifié, le système renvoie un « 304 Not Modified ».

If-Modified-Since est généralement utilisé à deux fins distinctes: 1) pour permettre des mises à jour efficaces d'une représentation en cache qui n'a pas de balise d'entité et 2) pour limiter la portée d'une traversée Web aux ressources qui ont récemment été modifiées.

Utilisation If-Unmodified-Since

Lors d'une requête PUT, HEAD ou GET portant sur un objet, l'en-tête « If-Unmodified-Since » vérifie si la valeur « Last-Modified » de l'objet (par exemple Sat, 14 March 2020 19:43:31 GMT) est égale ou antérieure à une valeur fournie. Si l'objet n'a pas été modifié, l'opération se poursuit. Si la valeur de « Last-Modified » est plus récente, le système renvoie une erreur « 412 Precondition Failed » lors d'une requête PUT et une erreur « 304 Not Modified » lors d'une requête GET ou HEAD.

If-Unmodified-Since est le plus souvent utilisé avec les méthodes de changement d'état (par exemple, POST, PUT, DELETE) pour éviter les écrasements accidentels lorsque plusieurs agents utilisateur peuvent agir en parallèle sur une ressource qui ne fournit pas de balises d'entité avec ses représentations (c'est-à-dire pour éviter le problème de "mise à jour perdue"). Il peut également être utilisé avec des méthodes sécurisées pour abandonner une requête si la représentation sélectionnée ne correspond pas à une requête déjà stockée (ou partiellement stockée) d'une requête antérieure.

Rechercher et filtrer des objets

Utilisez la console « Object Storage » pour rechercher et filtrer des objets en fonction de leur nom, de leur taille, de leur date ou de leur extension. Pour plus d'informations, consultez la section « Recherche et filtrage d'objets dans l'interface utilisateur ».