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 par requête unique Utilisez cette option si le fichier est suffisamment petit pour effectuer à nouveau l'importation complète en cas d'échec de connexion.

    • L'API JSON fait davantage la distinction entre les importations de fichiers multimédias, dans lesquelles seules les données d'objet sont incluses dans la requête, et les importations en plusieurs parties de l'API JSON, dans lesquelles les données d'objet et les métadonnées d'objet sont toutes incluses dans 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 une importation par requête unique plutôt qu'une importation avec reprise, prenez en compte le temps que vous êtes prêt à perdre en cas de défaillance du réseau nécessitant de reprendre l'importation au 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 procédez à une importation à partir d'un système local avec une vitesse de transfert moyenne de 8 Mbit/s, vous pouvez utiliser des importations de requêtes uniques pour des fichiers jusqu'à 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 :

  • 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.

  • Téléchargements via navigateurs authentifiés : téléchargements depuis le navigateur à l'aide d'un compte Google.

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

API REST

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.

Étape suivante