Utilice el comando cp para descargar recursos como archivos, imágenes y videos desde Object Storage Service (OSS) a su computadora local. Este comando le permite descargar varios objetos, limitar la velocidad de descarga u obtener versiones específicas de los objetos almacenados en un bucket con control de versiones habilitado.
Notas de uso
A partir de la versión 1.6.16 de ossutil, puede usar
ossutilcomo nombre del binario en la línea de comandos, sin importar el sistema operativo. Si utiliza una versión anterior a la 1.6.16, debe cambiar el nombre del binario para que coincida con su sistema operativo. Para más información, consulte ossutil command reference.
Permisos
De forma predeterminada, una cuenta de Alibaba Cloud tiene permisos completos sobre sus recursos. Un usuario o rol de Resource Access Management (RAM) no cuenta con ningún permiso de manera predeterminada. Debe otorgar permisos a un usuario o rol de RAM mediante una RAM policy o un bucket policy.
|
Acción de API |
Descripción |
|
|
Obligatorio para descargar un objeto. |
|
|
Opcional. Obligatorio para descargar una versión específica de un objeto de origen mediante la opción |
|
|
Opcional. Obligatorio si el objeto descargado se cifra en el servidor mediante KMS. |
|
|
|
|
|
Opcional. Obligatorio para descargas por lotes (operaciones recursivas). |
Sintaxis
ossutil cp cloud_url file_url [options]
|
Parámetro |
Descripción |
|
cloud_url |
Ruta de origen del objeto de OSS. El formato es |
|
file_url |
Ruta de destino del archivo local. Si el destino es un directorio, la ruta debe terminar con un separador (/ o \). Por ejemplo, una ruta de Linux es |
|
-r, --recursive |
Aplica la operación de forma recursiva a todos los objetos coincidentes bajo el prefijo especificado. De lo contrario, la operación se aplica únicamente al objeto indicado. |
|
-f --force |
Fuerza la ejecución de la operación sin solicitar confirmación. |
|
-u,--update |
Ejecuta la descarga solo si el archivo de destino no existe o si la última modificación del objeto de origen es posterior a la del archivo de destino. |
|
--maxdownspeed |
Velocidad máxima de descarga en KB/s. El valor predeterminado es 0, lo que significa que no hay límite de velocidad. |
|
--disable-ignore-error |
Deshabilita la omisión de errores durante las operaciones por lotes. |
|
--only-current-dir |
Descarga únicamente los objetos del directorio actual e ignora los subdirectorios y su contenido. |
|
--bigfile-threshold |
Umbral de tamaño en bytes para iniciar una descarga reanudable. Valor predeterminado: 100 MB Rango de valores: de 0 a 9223372036854775807 |
|
--part-size |
Tamaño de cada parte en bytes. De forma predeterminada, ossutil calcula automáticamente un tamaño adecuado según el tamaño del objeto. Rango de valores: de 1 a 9223372036854775807 |
|
--checkpoint-dir |
Directorio donde ossutil almacena la información de puntos de control para una descarga reanudable. Si la descarga reanudable falla, ossutil crea el directorio |
|
--range |
Descarga un rango de bytes específico del objeto y lo guarda como un archivo nuevo. La numeración de los bytes comienza en cero.
|
|
--encoding-type |
Tipo de codificación del nombre del objeto. Establezca esta opción en url. Si no se especifica, el nombre del objeto no se codifica. |
|
--include |
Incluye todos los objetos que coinciden con el patrón especificado. Para más información, consulte include and exclude options. |
|
--exclude |
Excluye todos los objetos que coinciden con el patrón especificado. Para más información, consulte include and exclude options. |
|
--meta |
Establece los metadatos del objeto. El formato es |
|
--acl |
Lista de control de acceso (ACL) del objeto. Valores válidos:
|
|
--snapshot-path |
Directorio donde se guarda la información de la instantánea durante la descarga. En la siguiente descarga, ossutil lee esta información desde dicho directorio para ejecutar una descarga incremental. |
|
--disable-crc64 |
Deshabilita la verificación de redundancia cíclica de 64 bits (CRC-64). De forma predeterminada, ossutil habilita CRC-64 en todas las transferencias de datos. |
|
--payer |
Método de pago de la solicitud. Para que quien realiza la solicitud asuma el costo del tráfico y de las peticiones generadas al acceder a la ruta indicada, establezca esta opción en requester. |
|
--partition-download |
Especifica la partición del objeto que se va a descargar. El valor sigue el formato |
|
-j,--job |
Número de tareas simultáneas para operaciones con varios objetos. Valor predeterminado: 3. Rango de valores: de 1 a 10 000. |
|
--parallel |
Número de tareas simultáneas para operaciones con un solo objeto. Rango de valores: de 1 a 10 000. Si no se establece esta opción, ossutil determina el valor según el tipo de operación y el tamaño del objeto. |
|
--version-id |
Descarga una versión específica de un objeto. Utilice la opción --version-id únicamente con buckets que tengan el control de versiones habilitado. Para habilitar el control de versiones en un bucket, consulte bucket-versioning (Versioning). |
|
--start-time |
Marca de tiempo UNIX. Si especifica esta opción, se ignoran los objetos cuya última modificación sea anterior a dicha marca de tiempo. Nota
Solo ossutil 1.7.18 y versiones posteriores admiten este parámetro. Para más información sobre cómo actualizar la versión, consulte update (Upgrade ossutil). |
|
--end-time |
Marca de tiempo UNIX. Si especifica esta opción, se ignoran los objetos cuya última modificación sea posterior a dicha marca de tiempo. Nota
|
Para más información sobre otras opciones comunes de este comando, consulte Common options.
Si la concurrencia predeterminada no satisface sus necesidades de rendimiento, ajuste las opciones -j, --jobs y --parallel para optimizarlo. De forma predeterminada, ossutil calcula el número de procesos paralelos según el tamaño del objeto. Cuando transfiere objetos grandes por lotes, la concurrencia real equivale al número de trabajos multiplicado por el número de procesos paralelos.
Si la instancia de ECS o el servidor que ejecuta el comando tiene recursos limitados (red, memoria o CPU), se recomienda establecer la concurrencia en un valor inferior a 100. Si estos recursos no se aprovechan por completo, puede aumentar la concurrencia.
Una concurrencia demasiado alta puede degradar el rendimiento o provocar errores EOF debido a la sobrecarga por cambio de hilos y a la competencia por recursos. Ajuste las opciones -j, --jobs y --parallel según los recursos de su máquina. Al ejecutar pruebas de estrés, comience con valores bajos de concurrencia y auméntelos gradualmente hasta encontrar la configuración óptima.
Ejemplos
A continuación se presentan ejemplos para un sistema Linux. Debe ajustar los parámetros para que coincidan con su sistema operativo y entorno. Estos ejemplos asumen lo siguiente:
Nombre del bucket:
examplebucketDirectorio de OSS:
destfolder/Directorio local:
localfolder/Archivo local:
examplefile.txt
Descargar un solo objeto
-
Descargue un objeto a un directorio específico y conserve su nombre original:
ossutil cp oss://examplebucket/destfolder/examplefile.txt localfolder/ -
Descargue un objeto a un directorio específico y cámbiele el nombre a
example.txt:ossutil cp oss://examplebucket/destfolder/examplefile.txt localfolder/example.txt
Descarga por lotes
-
Utilice la opción
-rpara descargar el directoriodestfolder, incluidos todos sus subdirectorios y objetos.ossutil cp -r oss://examplebucket/destfolder/ localfolder/ -
Utilice la opción
--only-current-dirpara descargar únicamente los objetos del directorio actual e ignorar los subdirectorios.ossutil cp oss://examplebucket/destfolder/ localfolder/ --only-current-dir -r -
Utilice la opción
-upara descargar solo los objetos que no existen localmente o que se actualizaron en OSS. Esta opción omite la descarga de un objeto si ya existe un archivo local con el mismo nombre y fecha de última modificación.ossutil cp -r -u oss://examplebucket/destfolder/ localfolder/
Descargar objetos condicionales
-
Descargue todos los objetos del directorio
destfolderque no estén en formato JPG:ossutil cp -r oss://examplebucket/destfolder/ localfolder/ --exclude "*.jpg" -
Descargue los objetos del directorio
destfoldercuyo nombre contengaabc, pero que no estén en formato JPG ni TXT:ossutil cp -r oss://examplebucket/destfolder/ localfolder/ --include "*abc*" --exclude "*.jpg" --exclude "*.txt"
Limitar la velocidad de descarga
Utilice la opción --maxdownspeed para limitar la velocidad de descarga a 1 MB/s (1024 KB/s).
ossutil cp -r oss://examplebucket/destfolder/ localfolder/ --maxdownspeed 1024
Descarga por rango
Utilice la opción --range para descargar los bytes del 10 al 20 del archivo examplefile.txt a su computadora local.
ossutil cp oss://examplebucket/destfolder/examplefile.txt localfolder/ --range 10-20
Descargar objetos dentro de un intervalo de tiempo específico
Utilice las opciones --start-time y --end-time para descargar únicamente los objetos del directorio destfolder cuya última modificación ocurrió entre las 10:09:18 y las 12:55:58 del 31 de octubre de 2023 (UTC+8).
ossutil cp -r oss://examplebucket/destfolder/ localfolder/ --start-time 1698718158 --end-time 1698728158
Descargar una versión específica de un objeto
Primero, ejecute el comando ls --all-versions para obtener todos los identificadores de versión del objeto. Después, utilice la opción --version-id para descargar la versión deseada.
La opción --version-id solo se puede utilizar con objetos almacenados en un bucket que tenga el control de versiones habilitado. Para habilitar el control de versiones en un bucket, consulte bucket-versioning (Versioning).
ossutil cp oss://examplebucket/test.jpg localfolder/ --version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3MDRk
Descargar objetos y generar información de instantánea
Utilice la opción --snapshot-path para generar información de instantánea de los objetos descargados en un directorio específico. Cuando ejecute un comando de descarga posterior con esta opción, ossutil leerá dicha información desde el directorio para realizar una descarga incremental. Para más información, consulte Upload objects and generate snapshots.
ossutil cp -r oss://examplebucket/destfolder/ localfolder/ --start-time 1698718158 --end-time 1698728158
Descarga entre cuentas o entre regiones
Utilice las opciones comunes -e, -i y -k para descargar un objeto de un bucket propiedad de otra cuenta y ubicado en la región China (Shanghai).
Especifique el endpoint correspondiente a la región donde se encuentra el bucket. Para más información, consulte Regions and Endpoints.
ossutil cp oss://examplebucket/exampleobject.txt localfolder/ -e oss-cn-shanghai.aliyuncs.com -i yourAccessKeyID -k yourAccessKeySecret