Pour téléverser des fichiers locaux, des images, des vidéos ou d'autres ressources vers OSS, notamment des fichiers volumineux, utilisez la commande cp d'ossutil.
Remarques importantes
Le téléversement de fichiers requiert les permissions
oss:PutObject,oss:ListPartsetoss:AbortMultipartUpload. Pour plus de détails, consultez Attribuer des politiques de permissions personnalisées aux utilisateurs RAM.Le téléversement par lot n'est pris en charge que si la source est un répertoire.
L'option
--snapshot-pathdisponible dans ossutil 1.0 a été supprimée dans ossutil 2.0. Pour effectuer des téléversements incrémentiels, utilisez plutôt l'option-u(--update).Lorsque vous utilisez l'option
-u, --update, le système envoie au moins une requête HEAD pour chaque fichier afin de le comparer à l'objet de destination, que celui-ci existe ou non. Dans les scénarios où les données changent peu fréquemment, cela génère de nombreuses requêtes inefficaces, ce qui peut dégrader les performances et entraîner des frais de requête supplémentaires. Évaluez soigneusement vos besoins métier avant d'utiliser cette option afin d'éviter une consommation inutile de ressources.
Syntaxe de la commande
ossutil cp source dest [flags]
À partir d'ossutil 2.3.0, les options
--job,--parallel,--bigfile-threshold,--part-sizeet--write-buffer-sizepeuvent être configurées via un fichier de configuration. Ajoutez-les au formatkey=value(par exemple,job=10) dans la section de profil correspondante du fichier de configuration, ou définissez-les à l'aide deossutil config set. Les options de ligne de commande priment sur les paramètres du fichier de configuration.Depuis ossutil 2.4.0, l'option
--enable-symlink-dirpermet de téléverser des sous-répertoires liés symboliquement avec la commande cp.
|
Paramètre |
Type |
Description |
|
source |
string |
Chemin du fichier local. Accepte les chemins relatifs, absolus et |
|
dest |
string |
Chemin du fichier dans le bucket de destination. Exemple : |
|
--acl |
string |
Permissions d'accès pour l'objet. Valeurs valides :
|
|
--bandwidth-limit |
SizeSuffix |
Limite la bande passante réseau pour contrôler le taux de transfert des données. La valeur minimale est de 1024 B/s. L'unité par défaut est B/s. Lors de la définition de ce paramètre, spécifiez une unité si nécessaire. Les unités valides incluent B (octets), K (kilo-octets), M (méga-octets) et G (giga-octets). Par exemple, 50 M définit la limite de bande passante à 50 MB/s. |
|
--bigfile-threshold |
SizeSuffix |
Seuil (en octets) pour activer le téléversement, le téléchargement ou la copie multipartis pour les fichiers volumineux. Valeur par défaut : 104857600. Remarque
Prise en charge de la configuration via fichier depuis ossutil 2.3.0. |
|
--cache-control |
string |
Définit le comportement de mise en cache lorsque l'objet est téléchargé par un navigateur web. |
|
--content-disposition |
string |
Indique comment l'objet doit être affiché. |
|
--content-encoding |
string |
Déclare la méthode d'encodage de l'objet. |
|
--content-type |
string |
Type de contenu de l'objet. |
|
--copy-props |
string |
Détermine les propriétés à copier depuis l'objet source. Valeurs valides :
|
|
--checkpoint-dir |
string |
|
|
-d, --dirs |
string |
Liste les fichiers et sous-répertoires du répertoire courant sans lister récursivement tous les fichiers des sous-répertoires. |
|
--encoding-type |
string |
Méthode d'encodage pour les noms d'objets ou de fichiers en entrée. Valeur valide : url. |
|
--end-with |
string |
Renvoie les objets qui précèdent ou correspondent à la valeur spécifiée dans l'ordre alphabétique. |
|
--exclude |
stringArray |
Règles d'exclusion pour les chemins ou les noms de fichiers. |
|
--exclude-from |
stringArray |
Lit les règles d'exclusion depuis un fichier de règles. |
|
--expires |
stringArray |
Spécifie la date d'expiration absolue pour le contenu mis en cache. |
|
--files-from |
stringArray |
Lit une liste de noms de fichiers sources depuis un fichier, en ignorant les lignes vides et les commentaires. S'applique uniquement aux scénarios de filtrage. |
|
--files-from-raw |
stringArray |
Lit une liste de noms de fichiers sources depuis un fichier. S'applique uniquement aux scénarios de filtrage. |
|
--filter |
stringArray |
Règles de filtrage pour les chemins ou les noms de fichiers. |
|
--filter-from |
stringArray |
Lit les règles de filtrage depuis un fichier de règles. |
|
-f, --force |
/ |
Force l'opération sans demander de confirmation. |
|
--include |
stringArray |
Règles d'inclusion pour les chemins ou les noms de fichiers. Remarque
Pour plus d'informations sur les options de filtrage, consultez Options de filtrage. |
|
--include-from |
stringArray |
Lit les règles d'inclusion depuis un fichier de règles. |
|
-j, --job |
int |
Nombre de tâches simultanées. Valeur par défaut : 3. Remarque
|
|
--listObjects |
/ |
Utilise l'API ListObjects pour lister les objets. |
|
--max-size |
SizeSuffix |
Taille maximale de fichier à transférer. L'unité par défaut est l'octet. Vous pouvez également utiliser des suffixes : B|K|M|G|T|P. Remarque : 1K (KiB) = 1024B. |
|
--metadata |
strings |
Métadonnées définies par l'utilisateur pour l'objet, au format key=value. |
|
--metadata-directive |
string |
Définit comment appliquer les métadonnées à l'objet de destination. Valeurs valides :
|
|
--metadata-exclude |
stringArray |
Règles d'exclusion pour les métadonnées d'objet. |
|
--metadata-filter |
stringArray |
Règles de filtrage pour les métadonnées d'objet. |
|
--metadata-filter-from |
stringArray |
Lit les règles de filtrage des métadonnées d'objet depuis un fichier de règles. |
|
--metadata-include |
stringArray |
Règles d'inclusion pour les métadonnées d'objet. |
|
--min-age |
Duration |
Téléverse uniquement les fichiers modifiés avant l'intervalle de temps spécifié. L'unité par défaut est la seconde. Vous pouvez utiliser des suffixes tels que h (heures). Exemple : 1h signifie 1 heure. Remarque
|
|
--max-age |
Duration |
Téléverse uniquement les fichiers modifiés dans l'intervalle de temps spécifié. L'unité par défaut est la seconde. Vous pouvez utiliser des suffixes tels que h (heures). Exemple : 1h signifie 1 heure. Remarque
|
|
--min-mtime |
Time |
Téléverse uniquement les fichiers modifiés après l'heure spécifiée, par exemple 2006-01-02T15:04:05. |
|
--max-mtime |
Time |
Téléverse uniquement les fichiers modifiés avant l'heure spécifiée, par exemple 2006-01-02T15:04:05. |
|
--min-size |
SizeSuffix |
Taille minimale de fichier à transférer. L'unité par défaut est l'octet. Vous pouvez également utiliser des suffixes : B|K|M|G|T|P. Remarque : 1K (KiB) = 1024B. |
|
--no-progress |
/ |
Ne pas afficher la barre de progression. |
|
--page-size |
int |
Nombre maximal d'objets listés par page lors d'un téléversement par lot. Valeur par défaut : 1000. Plage valide : 1–1000. |
|
--parallel |
int |
Nombre de tâches simultanées pour les opérations internes sur un seul fichier. Remarque
Prise en charge de la configuration via fichier depuis ossutil 2.3.0. |
|
--part-size |
SizeSuffix |
Taille des parties pour le téléversement multipartis. Par défaut, ossutil calcule une taille de partie appropriée en fonction de la taille du fichier. Plage valide : 100 KiB–5 GiB. Remarque
Prise en charge de la configuration via fichier depuis ossutil 2.3.0. |
|
-r, --recursive |
/ |
Exécute l'opération de manière récursive. Lorsque cette option est spécifiée, la commande s'applique à tous les objets correspondants dans le bucket. Sinon, elle s'applique uniquement à l'objet spécifié par le chemin. |
|
--request-payer |
string |
Mode de paiement pour la requête. Définissez ce paramètre si le bucket utilise le mode pay-by-requester. Valeur valide : requester. |
|
--size-only |
/ |
Téléverse uniquement les fichiers sources dont la taille diffère de celle des fichiers de destination. |
|
--storage-class |
string |
Classe de stockage de l'objet. Valeurs valides :
|
|
--tagging |
strings |
Tags pour l'objet, au format key=value. |
|
--tagging-directive |
string |
Définit comment appliquer les tags à l'objet de destination. Valeurs valides :
|
|
-u, --update |
/ |
Ignore les fichiers qui existent déjà à la destination et dont l'heure de modification est plus récente que celle des fichiers sources. Remarque
Si un fichier existe déjà à la destination mais possède une heure de modification antérieure à celle du fichier source, le fichier est mis à jour. |
|
--ignore-existing |
/ |
Ignore les fichiers qui existent déjà à la destination. |
|
--enable-symlink-dir |
/ |
Suit et téléverse les sous-répertoires liés symboliquement (symlink) pendant le téléversement. Par défaut, la commande cp ignore les sous-répertoires liés symboliquement lors du téléversement d'un répertoire. Lorsque cette option est spécifiée, la commande téléverse récursivement le contenu des sous-répertoires liés symboliquement. Remarque
Pris en charge depuis ossutil 2.4.0. |
Pour plus d'informations, consultez Options de ligne de commande.
Les règles de nommage des objets sont les suivantes :
Pour un téléversement de fichier unique, si le préfixe est vide, le nom de l'objet correspond au nom du fichier.
Pour un téléversement de fichier unique, si le préfixe se termine par « / », le nom de l'objet est préfixe + nom du fichier.
Pour un téléversement par lot, si le préfixe est vide, le nom de l'objet correspond au chemin relatif du fichier source.
Pour un téléversement par lot, si le préfixe se termine par « / », le nom de l'objet est préfixe + chemin relatif du fichier source.
Pour un téléversement par lot, si le préfixe ne se termine pas par « / », le nom de l'objet est préfixe + « / » + chemin relatif du fichier source.
Le chemin relatif d'un fichier source commence après le répertoire racine. Par exemple, lors de l'exécution de cp /root/dir/ ..., le chemin relatif du fichier /root/dir/subdir/test.txt est subdir/test.txt.
Paramètres recommandés pour le téléversement de fichiers volumineux
Lorsque vous téléversez un fichier supérieur à 100 MB, ossutil bascule automatiquement vers le téléversement multipartis. Pour augmenter la vitesse de téléversement et activer la reprise sur incident, utilisez les paramètres suivants conjointement :
|
Paramètre |
Valeur recommandée |
Description |
|
|
|
Nombre de tâches simultanées pour le téléversement de plusieurs fichiers. Valeur par défaut : 3. Cette option ne prend effet que si vous spécifiez également |
|
|
|
Nombre de tâches simultanées pour les opérations internes (telles que les téléversements multipartis) sur un seul fichier. L'augmentation de cette valeur accélère le téléversement d'un seul fichier volumineux. |
|
|
|
Répertoire utilisé pour le téléversement récupérable. |
Le répertoire spécifié par --checkpoint-dir est créé sur le serveur local, et non dans le bucket OSS. ossutil crée automatiquement un sous-répertoire .ossutil_checkpoint sous ce chemin pour stocker les fichiers de point de contrôle .ucp qui enregistrent la progression du téléversement (y compris l'ID de téléversement multipartis et les informations sur les parties).
Si le téléversement est interrompu, exécutez à nouveau la même commande. ossutil reprend le téléversement à partir du fichier de point de contrôle, réutilise le même ID de téléversement multipartis et ne retéléverse pas les parties déjà envoyées.
Exemple :
ossutil cp localfile.tar oss://examplebucket/desfolder/ -j 10 --parallel 10 --checkpoint-dir /path/to/checkpoint
Exemples
Téléverser un fichier unique
-
Téléversement d'un fichier unique
Téléversez le fichier local examplefile.txt vers le dossier desfolder dans examplebucket.
ossutil cp D:/localpath/examplefile.txt oss://examplebucket/desfolder/
Téléverser plusieurs fichiers
-
Téléverser uniquement les fichiers d'un dossier
Téléversez les fichiers du dossier local localfolder vers le dossier desfolder dans examplebucket.
ossutil cp -r D:/localpath/localfolder/ oss://examplebucket/desfolder/ -
Téléversement par lot de fichiers correspondant à une condition
Téléversez tous les fichiers au format TXT.
ossutil cp -r D:/localpath/localfolder/ oss://examplebucket/desfolder/ --include "*.txt" -
Utilisation de 10 tâches simultanées pour un téléversement par lot
ossutil cp -r D:/localpath/localfolder/ oss://examplebucket/desfolder/ -f -j 10
Limiter la vitesse de téléversement
-
Téléversez le fichier local upload.rar vers le dossier desfolder dans examplebucket à 20 MB/s. L'unité par défaut est l'octet par seconde (B/s).
ossutil cp D:/upload.rar oss://examplebucket/desfolder/ --bandwidth-limit 20971520 -
Téléversez le fichier local file.rar vers le dossier desfolder dans examplebucket, en limitant la vitesse de téléversement à 50 MB/s. Spécifiez l'unité en méga-octets par seconde (MB/s).
ossutil cp D:/file.rar oss://examplebucket/desfolder/ --bandwidth-limit 50M