Utilisez la commande cp pour télécharger des ressources telles que des fichiers, des images et des vidéos depuis Object Storage Service (OSS) vers votre ordinateur local. Cette commande permet de télécharger plusieurs objets, de limiter la vitesse de téléchargement ou de récupérer des versions spécifiques d'objets depuis un bucket avec versioning activé.
Remarques sur l'utilisation
À partir de la version 1.6.16 d'ossutil, utilisez
ossutilcomme nom binaire dans la ligne de commande, quel que soit votre système d'exploitation. Pour les versions antérieures à la 1.6.16, adaptez le nom binaire à votre système d'exploitation. Pour plus d'informations, consultez la page Référence des commandes ossutil.
Autorisations
Par défaut, un compte Alibaba Cloud dispose de toutes les autorisations sur ses ressources. Un utilisateur RAM ou un rôle RAM ne possède aucune autorisation par défaut. Vous devez accorder des autorisations à un utilisateur RAM ou à un rôle RAM via une politique RAM ou une politique de bucket.
|
Action API |
Description |
|
|
Requis pour télécharger un objet. |
|
|
Facultatif. Requis pour télécharger une version spécifique d'un objet source à l'aide de l'option |
|
|
Facultatif. Requis si l'objet téléchargé est chiffré côté serveur à l'aide de KMS. |
|
|
|
|
|
Facultatif. Requis pour les téléchargements par lot (opérations récursives). |
Syntaxe
ossutil cp cloud_url file_url [options]
|
Paramètre |
Description |
|
cloud_url |
Le chemin source de l'objet OSS. Le format est |
|
file_url |
Le chemin de destination du fichier local. Si la destination est un répertoire, le chemin doit se terminer par un séparateur (/ ou \). Par exemple, un chemin Linux est |
|
-r, --recursive |
Applique l'opération de manière récursive à tous les objets correspondants sous le préfixe spécifié. Sinon, l'opération s'applique uniquement à l'objet unique spécifié. |
|
-f --force |
Force l'exécution de l'opération sans demander de confirmation. |
|
-u,--update |
Effectue le téléchargement uniquement si le fichier de destination n'existe pas ou si la date de dernière modification de l'objet source est plus récente que celle du fichier de destination. |
|
--maxdownspeed |
La vitesse de téléchargement maximale en Ko/s. La valeur par défaut est 0, ce qui signifie qu'il n'y a aucune limite de vitesse. |
|
--disable-ignore-error |
Désactive l'ignorance des erreurs lors des opérations par lot. |
|
--only-current-dir |
Télécharge uniquement les objets du répertoire actuel et ignore les sous-répertoires ainsi que les objets qu'ils contiennent. |
|
--bigfile-threshold |
Le seuil de taille en octets pour un téléchargement avec reprise. Valeur par défaut : 100 Mo Plage de valeurs : 0 à 9223372036854775807 |
|
--part-size |
La taille de la partie en octets. Par défaut, ossutil calcule automatiquement une taille de partie appropriée en fonction de la taille de l'objet. Plage de valeurs : 1 à 9223372036854775807 |
|
--checkpoint-dir |
Le répertoire dans lequel ossutil stocke les informations de point de contrôle pour un téléchargement avec reprise. Si un téléchargement avec reprise échoue, ossutil crée un répertoire |
|
--range |
Télécharge une plage d'octets spécifiée de l'objet et l'enregistre sous forme de nouveau fichier. La numérotation des octets commence à zéro.
|
|
--encoding-type |
Le type d'encodage du nom de l'objet. Définissez cette option sur url. Si cette option n'est pas spécifiée, le nom de l'objet n'est pas encodé. |
|
--include |
Inclut tous les objets qui correspondent au modèle spécifié. Pour plus d'informations, consultez les options include et exclude. |
|
--exclude |
Exclut tous les objets qui correspondent au modèle spécifié. Pour plus d'informations, consultez les options include et exclude. |
|
--meta |
Définit les métadonnées de l'objet. Le format est |
|
--acl |
La liste de contrôle d'accès (ACL) de l'objet. Valeurs possibles :
|
|
--snapshot-path |
Le répertoire dans lequel les informations de snapshot sont enregistrées pendant le téléchargement. Lors du prochain téléchargement, ossutil lit les informations de snapshot depuis ce répertoire pour effectuer un téléchargement incrémentiel. |
|
--disable-crc64 |
Désactive la vérification de redondance cyclique 64 bits (CRC-64). Par défaut, ossutil active CRC-64 pour tous les transferts de données. |
|
--payer |
La méthode de paiement pour la requête. Pour que le demandeur paie le trafic et les requêtes générés par l'accès au chemin spécifié, définissez cette option sur requester. |
|
--partition-download |
Spécifie une partition de l'objet à télécharger. La valeur est au format |
|
-j,--job |
Le nombre de tâches simultanées pour les opérations multi-objets. Valeur par défaut : 3. Plage de valeurs : 1 à 10 000. |
|
--parallel |
Le nombre de tâches simultanées pour les opérations sur un seul objet. Plage de valeurs : 1 à 10 000. Si cette option n'est pas définie, ossutil détermine la valeur en fonction du type d'opération et de la taille de l'objet. |
|
--version-id |
Télécharge une version spécifique d'un objet. Utilisez l'option --version-id uniquement avec un bucket dont le versioning est activé. Pour activer le versioning d'un bucket, consultez la page bucket-versioning (Versioning). |
|
--start-time |
Un horodatage UNIX. Si vous spécifiez cette option, les objets dont la date de dernière modification est antérieure à cet horodatage sont ignorés. Remarque
Seules les versions 1.7.18 et ultérieures d'ossutil prennent en charge ce paramètre. Pour plus d'informations sur la mise à niveau, consultez la page update (Mettre à jour ossutil). |
|
--end-time |
Un horodatage UNIX. Si vous spécifiez cette option, les objets dont la date de dernière modification est postérieure à cet horodatage sont ignorés. Remarque
|
Pour plus d'informations sur les autres options courantes de cette commande, consultez la page Options courantes.
Si le niveau de concurrence par défaut ne répond pas à vos besoins en matière de performances, ajustez les options -j, --jobs et --parallel pour optimiser les performances. Par défaut, ossutil calcule le nombre de processus parallèles en fonction de la taille de l'objet. Lorsque vous transférez de grands objets par lots, la concurrence réelle correspond au nombre de jobs multiplié par le nombre de processus parallèles.
Si l'instance ECS ou le serveur qui exécute la commande dispose de ressources limitées, telles que le réseau, la mémoire ou le CPU, nous vous recommandons de définir la concurrence sur une valeur inférieure à 100. Si ces ressources ne sont pas entièrement utilisées, vous pouvez augmenter la concurrence.
Une concurrence trop élevée peut dégrader les performances ou provoquer des erreurs EOF en raison de la surcharge liée au changement de contexte des threads et à la compétition pour les ressources. Ajustez les options -j, --jobs et --parallel en fonction des ressources de votre machine. Lors des tests de charge, commencez par de faibles valeurs de concurrence et augmentez-les progressivement pour trouver le paramètre optimal.
Exemples
Les exemples suivants concernent un système Linux. Adaptez les paramètres à votre système d'exploitation et à votre environnement. Les exemples supposent les éléments suivants :
Nom du bucket :
examplebucketRépertoire OSS :
destfolder/Répertoire local :
localfolder/Fichier local :
examplefile.txt
Télécharger un seul objet
-
Téléchargez un objet dans un répertoire spécifié en conservant son nom d'origine :
ossutil cp oss://examplebucket/destfolder/examplefile.txt localfolder/ -
Téléchargez un objet dans un répertoire spécifié et renommez-le en
example.txt:ossutil cp oss://examplebucket/destfolder/examplefile.txt localfolder/example.txt
Téléchargement par lot
-
Utilisez l'option
-rpour télécharger le répertoiredestfolder, y compris tous ses sous-répertoires et objets.ossutil cp -r oss://examplebucket/destfolder/ localfolder/ -
Utilisez l'option
--only-current-dirpour télécharger uniquement les objets du répertoire actuel et ignorer tous les sous-répertoires.ossutil cp oss://examplebucket/destfolder/ localfolder/ --only-current-dir -r -
Utilisez l'option
-upour télécharger uniquement les objets qui n'existent pas localement ou qui ont été mis à jour dans OSS. Cette option ignore le téléchargement d'un objet si un fichier local portant le même nom et ayant la même date de dernière modification existe déjà.ossutil cp -r -u oss://examplebucket/destfolder/ localfolder/
Télécharger des objets conditionnels
-
Téléchargez tous les objets qui ne sont pas au format JPG depuis le répertoire
destfolder:ossutil cp -r oss://examplebucket/destfolder/ localfolder/ --exclude "*.jpg" -
Téléchargez les objets du répertoire
destfolderdont les noms contiennentabcmais qui ne sont ni au format JPG ni au format TXT :ossutil cp -r oss://examplebucket/destfolder/ localfolder/ --include "*abc*" --exclude "*.jpg" --exclude "*.txt"
Limiter la vitesse de téléchargement
Utilisez l'option --maxdownspeed pour limiter la vitesse de téléchargement à 1 Mo/s (1 024 Ko/s).
ossutil cp -r oss://examplebucket/destfolder/ localfolder/ --maxdownspeed 1024
Téléchargement par plage
Utilisez l'option --range pour télécharger les octets 10 à 20 de examplefile.txt sur votre ordinateur local.
ossutil cp oss://examplebucket/destfolder/examplefile.txt localfolder/ --range 10-20
Télécharger des objets dans une plage de temps spécifiée
Utilisez les options --start-time et --end-time pour télécharger uniquement les objets du répertoire destfolder dont la dernière modification a eu lieu entre le 31 octobre 2023 à 10:09:18 (UTC+8) et le 31 octobre 2023 à 12:55:58 (UTC+8).
ossutil cp -r oss://examplebucket/destfolder/ localfolder/ --start-time 1698718158 --end-time 1698728158
Télécharger une version spécifique d'un objet
Commencez par utiliser la commande ls --all-versions pour obtenir tous les ID de version de l'objet. Ensuite, utilisez l'option --version-id pour télécharger une version spécifique.
L'option --version-id ne peut être utilisée que pour les objets d'un bucket dont le versioning est activé. Pour activer le versioning d'un bucket, consultez la page bucket-versioning (Versioning).
ossutil cp oss://examplebucket/test.jpg localfolder/ --version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3MDRk
Télécharger des objets et générer des informations de snapshot
Utilisez l'option --snapshot-path pour générer des informations de snapshot pour les objets téléchargés dans un répertoire spécifié. Lorsque vous exécutez une commande de téléchargement ultérieure avec cette option, ossutil lit les informations de snapshot depuis le répertoire pour effectuer un téléchargement incrémentiel. Pour plus d'informations, consultez la page Télécharger des objets et générer des snapshots.
ossutil cp -r oss://examplebucket/destfolder/ localfolder/ --start-time 1698718158 --end-time 1698728158
Téléchargement inter-comptes ou inter-régions
Utilisez les options courantes -e, -i et -k pour télécharger un objet depuis un bucket appartenant à un autre compte et situé dans la région Chine (Shanghai).
Spécifiez l'Endpoint correspondant à la région où se trouve le bucket. Pour plus d'informations, consultez la page Régions et Endpoints.
ossutil cp oss://examplebucket/exampleobject.txt localfolder/ -e oss-cn-shanghai.aliyuncs.com -i yourAccessKeyID -k yourAccessKeySecret