Importations et téléchargements

Cette page explique les concepts liés à l'importation et au téléchargement d'objets. Vous pouvez importer et stocker n'importe quel type de données MIME d'une taille maximale de 5 To.

Importations

Vous pouvez envoyer des requêtes d'importation à Cloud Storage de différentes manières :

  • Importation simple. Utilisez cette option si le fichier est assez petit pour être réimporté dans son intégralité en cas d'échec de la connexion et s'il n'y a aucune métadonnée d'objet à envoyer dans le cadre de la requête.

  • Importation en plusieurs parties. Utilisez cette option si le fichier est assez petit pour être réimporté dans son intégralité en cas d'échec de la connexion et si vous souhaitez inclure des métadonnées d'objet dans le cadre de la requête.

  • Importation avec reprise. Utilisez cette option pour un transfert plus fiable, ce qui est particulièrement important avec les fichiers volumineux. Les importations avec reprise constituent un bon choix pour la plupart des applications, car elles fonctionnent également pour de petits fichiers au prix d'une requête HTTP supplémentaire par importation. Vous pouvez également utiliser des transferts de diffusion, qui constituent un type d'importation avec reprise vous permettant d'importer un objet de taille inconnue.

Grâce à ces types d'importation de base, vous pouvez utiliser des stratégies d'importation plus avancées, telles que les importations composites parallèles et les importations en streaming.

Remarques concernant la taille d'importation

Lorsque vous choisissez d'utiliser des importations avec reprise plutôt que des importations simples ou en plusieurs parties, tenez compte de la durée que vous acceptez de perdre en cas d'échec du réseau et pour recommencer l'importation depuis le début. Pour des connexions plus rapides, votre taille limite peut être plus importante.

Par exemple, supposons que vous êtes prêt à tolérer 30 secondes de temps perdu :

  • Si vous importez depuis un système local avec une vitesse de transfert moyenne de 8 Mbit/s, vous pouvez utiliser des importations simples ou en plusieurs parties pour les fichiers de plus de 30 Mo.

  • Si vous importez à partir d'un service régional, dont la vitesse d'importation moyenne est de 500 Mbit/s, la taille limite des fichiers est d'environ 2 Go.

Importations composites parallèles

L'une des stratégies d'importation de fichiers volumineux est appelée importation composite parallèle. Dans ce type d'importation, un fichier est divisé en un maximum de 32 fragments qui sont importés en parallèle d'objets temporaires. L'objet final est ensuite recréé à l'aide des objets temporaires, et ceux-ci sont supprimés.

Les importations composites parallèles peuvent être considérablement plus rapides si la vitesse du réseau et celle du disque ne sont pas des facteurs limitants. Cependant, l'objet final stocké dans votre bucket est un objet composite qui ne comporte qu'un hachage crc32c et non un hachage MD5. Par conséquent, vous devez utiliser crcmod pour effectuer des vérifications d'intégrité lors du téléchargement de l'objet à l'aide de gsutil ou d'autres applications Python. Vous ne devez effectuer des importations composites parallèles que si les conditions suivantes s'appliquent :

  • Le bucket dans lequel vous importez les données ne possède pas de clés de chiffrement gérées par le client par défaut, car l'opération compose n'accepte pas les objets sources chiffrés de cette manière.

  • Les utilisateurs de Python qui ont besoin de télécharger vos objets ont installé google-crc32c ou crcmod.

  • Les utilisateurs de gsutil qui ont besoin de télécharger vos objets ont installé crcmod.

    Par exemple, si vous utilisez gsutil pour importer des éléments vidéo qui ne sont diffusés que par une application Java, les importations composites parallèles constituent un choix judicieux, car des mises en œuvre CRC32C efficaces sont disponibles en Java.

  • Les objets importés n'ont pas besoin de comporter de hachage MD5.

Compatibilité avec gsutil

Vous pouvez configurer comment et quand gsutil effectue des importations composites parallèles, qui sont désactivées par défaut, en modifiant les deux paramètres suivants :

  • parallel_composite_upload_threshold : taille totale minimale des fichiers pour effectuer une importation composite parallèle. Vous pouvez désactiver toutes les importations composites parallèles dans gsutil en définissant cette valeur sur 0.

  • parallel_composite_upload_component_size : taille maximale de chaque objet temporaire. Ce paramètre est ignoré si la taille totale du fichier est si importante que plus de 32 morceaux de cette taille seraient nécessaires.

Vous pouvez modifier ces deux paramètres soit pour chaque commande en utilisant l'option de premier niveau -o, soit pour toutes les commandes gsutil en modifiant le fichier de configuration .boto

Aucun espace disque local supplémentaire n'est requis lorsque vous utilisez gsutil pour effectuer des importations composites parallèles. Si une importation composite parallèle échoue avant la composition, exécutez à nouveau la commande gsutil afin de tirer parti des importations avec reprise pour les objets temporaires qui ont échoué. Tous les objets temporaires importés avec succès avant l'échec ne sont pas réimportés lorsque vous reprenez l'importation.

Les objets temporaires sont nommés selon le modèle suivant :

RANDOM_ID/gsutil/tmp/parallel_composite_uploads/for_details_see/gsutil_help_cp/HASH

RANDOM_ID est une valeur numérique et HASH est un hachage MD5 (sans aucun lien avec le hachage du contenu du fichier ou de l'objet).

Généralement, les objets temporaires sont supprimés à la fin d'une importation composite parallèle. Toutefois, pour éviter de laisser des objets temporaires, vous devez vérifier l'état de sortie à partir de la commande gsutil et supprimer manuellement tous les objets temporaires qui ont été importés dans le cadre d'une importation annulée.

Compatibilité avec JSON et XML

L'API JSON et l'API XML permettent toutes deux d'importer des fragments d'objets en parallèle et de les recombiner en un seul objet grâce à l'opération compose.

Tenez compte des éléments suivants lorsque vous concevez du code pour des importations composites parallèles :

  • Lorsque vous utilisez l'opération compose, les objets sources ne sont pas affectés par le processus de composition.

    En d'autres termes, si ces objets sont censés être temporaires, vous devez les supprimer explicitement une fois la composition terminée. Dans le cas contraire, les objets sources restent dans votre bucket et sont facturés en conséquence.

  • Afin d'empêcher les modifications d'objets sources entre les requêtes d'importation et de composition, vous devez fournir un numéro de génération attendu pour chaque source.

Téléchargements

Vous pouvez envoyer des requêtes de téléchargement à Cloud Storage de différentes manières :

  • Téléchargement simple : téléchargement d'objets dans une destination.

  • Téléchargement en streaming : téléchargement de données dans un processus.

  • Téléchargement d'objet segmenté : téléchargement d'objets volumineux.

Importer et télécharger une assistance par outil

Cliquez sur les onglets ci-dessous pour afficher les opérations compatibles pour chaque outil :

Console

gsutil

Bibliothèques clientes

C++

C#

Go

Java

Node.js

PHP

Python

Ruby

API REST

API JSON

API XML

Points de terminaison de requêtes

Si vous utilisez l'API REST pour importer et télécharger des données, consultez la section Points de terminaison de requêtes pour une discussion complète sur les points de terminaison de requête que vous pouvez utiliser.

Étapes suivantes