La commande cp transfère des fichiers ou des répertoires entre votre système local et Object Storage Service (OSS), ou au sein d'OSS. Elle prend en charge l'envoi, le téléchargement et la copie, avec des transferts concurrents intégrés et la reprise sur erreur pour les fichiers volumineux.
Avant d'utiliser la commande cp, assurez-vous d'avoir installé et configuré ossutil.
Remarque d'utilisation
Avant d'envoyer, de télécharger ou de copier des données, vérifiez que l'utilisateur RAM ou le rôle RAM associé à vos identifiants d'accès dispose des autorisations requises pour le bucket cible et les objets. Pour plus de détails, consultez la rubrique Accorder des autorisations de stratégie personnalisée aux utilisateurs RAM.
Fonctionnement
La commande ossutil cp détermine automatiquement s'il faut envoyer, télécharger ou copier les données, en fonction des types de chemin source et de destination.
ossutil sélectionne une méthode de transfert en fonction de la taille du fichier :
Les fichiers dont la taille est inférieure au seuil de reprise sont transférés en une seule opération. Le seuil par défaut est de 100 Mo. Modifiez-le à l'aide de l'option
--bigfile-threshold.Les fichiers dont la taille est supérieure ou égale au seuil utilisent la reprise sur erreur. Si un transfert est interrompu en raison d'une erreur réseau ou de l'arrêt du processus, ossutil enregistre la progression et reprend le transfert là où il s'était arrêté lorsque vous réexécutez la même commande. Si le transfert ne peut pas être repris, les parties incomplètes restent dans le bucket et continuent d'engendrer des frais de stockage. Supprimez les parties manuellement ou configurez des règles de cycle de vie pour les supprimer automatiquement.
En cas d'échec de la reprise sur erreur, ossutil crée un répertoire .ossutil_checkpoint pour stocker les informations de point de contrôle. Ce répertoire est supprimé automatiquement une fois le transfert terminé. Utilisez l'option --checkpoint-dir pour spécifier un autre répertoire pour les enregistrements de points de contrôle.
Envoi d'objets vers OSS
Utilisez la commande cp (envoi d'objets) pour envoyer des fichiers locaux, des images, des vidéos et d'autres ressources vers un bucket.
Envoyer un seul objet : envoyez un fichier depuis un chemin local vers un bucket.
Envoi en masse : envoyez un répertoire entier, y compris tous les sous-répertoires et fichiers.
Filtrage par motif : utilisez les options
--includeet--excludepour contrôler les fichiers à envoyer. Par exemple, envoyez uniquement les fichiers.logou ignorez tous les fichiers temporaires (.tmp).
Téléchargement d'objets depuis OSS
Utilisez la commande cp (téléchargement d'objets) pour télécharger des objets depuis OSS vers votre système local. Les opérations prises en charge incluent les téléchargements en masse, la limitation de la vitesse de téléchargement et le téléchargement d'une version spécifique depuis un bucket avec gestion des versions activée.
Télécharger un seul objet : téléchargez un objet spécifié vers un chemin local.
Téléchargement en masse : téléchargez une structure de répertoire entière depuis un bucket vers votre système local.
Télécharger une version spécifique : si la gestion des versions est activée pour votre bucket, téléchargez une version historique spécifique d'un objet.
Copie d'objets
Utilisez la commande cp (copie d'objets) pour copier un objet vers un autre bucket dans la même région, ou vers un autre chemin au sein du même bucket. L'opération de copie ne modifie pas le contenu de l'objet.
Copie inter-buckets : copiez un objet d'un bucket vers un autre au sein de la même région.
Copie intra-bucket (déplacement ou renommage) : copiez un objet d'un chemin vers un autre au sein du même bucket. Pour simuler un déplacement ou un renommage, copiez l'objet vers le nouveau chemin, puis supprimez la source.
La commande ossutil cp ne permet pas de copier des objets entre différentes régions. Pour répliquer des objets entre des buckets situés dans différentes régions, utilisez la fonctionnalité Cross-Region Replication (CRR).
Application en production
Ajustement des performances concurrentes
Ajustez les options -j, --jobs et --parallel si la concurrence par défaut ne répond pas à vos exigences de débit. Par défaut, ossutil calcule --parallel en fonction de la taille du fichier. Pour les transferts en masse de fichiers volumineux, la concurrence effective équivaut au nombre de jobs multiplié par le degré de parallélisme.
Si le serveur ou l'instance Elastic Compute Service (ECS) exécutant ossutil dispose de ressources limitées, telles que la bande passante réseau, la mémoire ou le CPU, réduisez les valeurs de concurrence. Si les ressources sont sous-utilisées, augmentez-les progressivement.
Une concurrence trop élevée peut dégrader les performances en raison de la surcharge liée au changement de contexte des threads et à la contention des ressources, et peut déclencher des erreurs EOF. Commencez par une valeur faible lors des tests de performance et augmentez-la progressivement jusqu'à trouver le paramètre optimal pour -j, --jobs et --parallel.
Limitation des vitesses de transfert
Utilisez les options --maxupspeed ou --maxdownspeed pour limiter la bande passante d'envoi ou de téléchargement et empêcher ossutil de saturer votre connexion réseau.