Copiar un objeto duplica un archivo de un bucket de origen a un bucket de destino dentro de la misma región, o a otro directorio en el mismo bucket, sin alterar el contenido del archivo. Para realizar esta operación, utilice el comando cp en ossutil.
Notas importantes
Para copiar objetos, debe contar con los permisos
oss:GetObject,oss:ListObjectsyoss:PutObject. Para obtener más información, consulte Grant custom permission policies to RAM users.Solo se pueden copiar objetos completos. Las cargas multiparte no fusionadas no son compatibles.
De forma predeterminada, se copian tanto las etiquetas como los atributos del objeto. Utilice la opción --copy-props para controlar cómo se gestionan los atributos y las etiquetas durante la copia.
No se admite la copia entre cuentas ni entre regiones. Para migrar archivos entre cuentas o regiones, utilice ossimport o Data Online Migration.
Al utilizar la opción
-u, --update, el sistema envía al menos una solicitud HEAD por archivo para comparar las marcas de tiempo, incluso si el archivo de destino no existe. En escenarios con pocos cambios en los datos, esto genera muchas solicitudes ineficientes que pueden reducir el rendimiento y provocar cargos adicionales por solicitudes. Evalúe cuidadosamente su caso de uso específico antes de habilitar esta opción para evitar un consumo innecesario de recursos.
Sintaxis del comando
ossutil cp oss://src_bucket[/src_prefix] oss://dest_bucket[/dest_prefix] [flags]
|
Parámetro |
Tipo |
Descripción |
|
src_bucket |
string |
Nombre del bucket de origen. |
|
src_prefix |
string |
Ruta de directorio o prefijo dentro del bucket de origen. |
|
dest_bucket |
string |
Nombre del bucket de destino. |
|
dest_prefix |
string |
Ruta de directorio o prefijo dentro del bucket de destino. |
|
--acl |
string |
Nivel de control de acceso para el objeto. Valores válidos:
|
|
--bandwidth-limit |
SizeSuffix |
Limita el ancho de banda de red para controlar la velocidad de transferencia de datos. El valor mínimo es 1024 B/s. La unidad predeterminada es B/s. Puede especificar una unidad al configurar este parámetro. Las unidades admitidas incluyen B (bytes), K (kilobytes), M (megabytes) y G (gigabytes). Por ejemplo, 50 M establece el límite en 50 MB/s. |
|
--bigfile-threshold |
SizeSuffix |
Umbral (en bytes) para habilitar la carga, descarga o copia multiparte de archivos grandes. Valor predeterminado: 104857600 (100 MiB). |
|
--cache-control |
string |
Especifica el comportamiento de caché cuando un navegador web descarga el objeto. |
|
--checkers |
int |
Número de hilos de verificación concurrentes. Valor predeterminado: 16. |
|
--checkpoint-dir |
string |
Directorio para almacenar datos de puntos de control y permitir transferencias reanudables. Valor predeterminado: |
|
--checksum |
/ |
Copia solo los archivos de origen cuyo tamaño o suma de verificación (si está disponible) difiere del destino. Se aplica únicamente a operaciones de copia de objeto a objeto. |
|
--content-disposition |
string |
Especifica el formato de visualización del objeto. |
|
--content-encoding |
string |
Declara el método de codificación utilizado para el objeto. |
|
--content-type |
string |
Tipo MIME del objeto. |
|
--copy-props |
string |
Controla cómo se copian las propiedades y etiquetas del objeto durante las operaciones de objeto a objeto. Valores admitidos:
|
|
-d, --dirs |
string |
Procesa archivos y subdirectorios inmediatos en el directorio actual, sin recorrer recursivamente subdirectorios más profundos. |
|
--encoding-type |
string |
Tipo de codificación para los nombres de objetos o archivos de entrada. Valor válido: url. |
|
--end-with |
string |
Devuelve objetos que preceden o coinciden con el valor especificado en orden alfabético. |
|
--exclude |
stringArray |
Reglas de exclusión para rutas o nombres de archivo. |
|
--exclude-from |
stringArray |
Lee reglas de exclusión desde un archivo. |
|
--expires |
string |
Establece un tiempo de caducidad absoluto para el contenido en caché. |
|
--files-from |
stringArray |
Lee una lista de nombres de archivo de origen desde un archivo y omite las líneas vacías o comentadas. Se aplica solo en escenarios de filtrado. |
|
--files-from-raw |
stringArray |
Lee una lista de nombres de archivo de origen desde un archivo. Se aplica solo en escenarios de filtrado. |
|
--filter |
stringArray |
Reglas de filtrado para rutas o nombres de archivo. |
|
--filter-from |
stringArray |
Lee reglas de filtrado desde un archivo. |
|
-f, --force |
/ |
Fuerza la operación sin solicitar confirmación. |
|
--ignore-existing |
/ |
Omite archivos que ya existen en el destino. |
|
--include |
stringArray |
Reglas de inclusión para rutas o nombres de archivo. |
|
--include-from |
stringArray |
Lee reglas de inclusión desde un archivo. |
|
-j, --job |
int |
Número de trabajos concurrentes. Valor predeterminado: 3. Nota
Esta opción solo surte efecto cuando se usa con uno de los siguientes indicadores: |
|
--list-objects |
/ |
Utiliza la API ListObjects para enumerar objetos. |
|
--max-size |
SizeSuffix |
Tamaño máximo de archivo a transferir. La unidad predeterminada es bytes. Puede agregar un sufijo: B|K|M|G|T|P (por ejemplo, 1K = 1024 B). |
|
--metadata |
strings |
Metadatos definidos por el usuario para el objeto, especificados como pares clave=valor. |
|
--metadata-directive |
string |
Especifica cómo configurar los metadatos para el objeto de destino. Valores válidos:
|
|
--metadata-exclude |
stringArray |
Reglas de exclusión para metadatos de objetos. |
|
--metadata-filter |
stringArray |
Reglas de filtrado para metadatos de objetos. |
|
--metadata-filter-from |
stringArray |
Lee reglas de filtrado de metadatos desde un archivo. |
|
--metadata-include |
stringArray |
Reglas de inclusión para metadatos de objetos. |
|
--min-age |
Duration |
Copia solo archivos modificados antes del intervalo de tiempo especificado. La unidad predeterminada es segundos. Puede usar sufijos como h (horas). Ejemplo: 1h significa 1 hora. Nota
|
|
--max-age |
Duration |
Copia solo archivos modificados dentro del intervalo de tiempo especificado. La unidad predeterminada es segundos. Puede usar sufijos como h (horas). Ejemplo: 1h significa 1 hora. Nota
|
|
--min-mtime |
Time |
Copia solo archivos modificados después de la hora especificada. Formato de hora: UTC (por ejemplo, 2006-01-02T15:04:05). Nota
|
|
--max-mtime |
Time |
Copia solo archivos modificados antes de la hora especificada. Formato de hora: UTC (por ejemplo, 2006-01-02T15:04:05). |
|
--min-size |
SizeSuffix |
Tamaño mínimo de archivo a transferir. La unidad predeterminada es bytes. Puede agregar un sufijo: B|K|M|G|T|P (por ejemplo, 1K = 1024 B). |
|
--no-progress |
/ |
Deshabilita la barra de progreso. |
|
--no-error-report |
/ |
Evita la generación de archivos de informe de errores durante operaciones por lotes. |
|
--output-dir |
string |
Directorio donde se guardan los archivos de informe de errores durante las operaciones por lotes. Valor predeterminado: |
|
--page-size |
int |
Número máximo de objetos listados por página durante la copia por lotes. Rango válido: 1–1000. Valor predeterminado: 1000. |
|
--parallel |
int |
Número de tareas concurrentes para operaciones internas en un solo archivo. |
|
--part-size |
SizeSuffix |
Tamaño de cada parte en operaciones multiparte. De forma predeterminada, ossutil calcula un tamaño de parte óptimo según el tamaño del archivo. Rango válido: 100 KiB a 5 GiB. |
|
-r, --recursive |
/ |
Realiza la operación de forma recursiva. Cuando se configura esta opción, el comando procesa todos los objetos coincidentes en el bucket. De lo contrario, opera solo sobre el objeto especificado explícitamente. |
|
--request-payer |
string |
Método de pago para la solicitud. Configure esto como requester si el bucket utiliza el modo de pago por solicitante. |
|
--size-only |
/ |
Copia solo archivos de origen cuyo tamaño difiere del destino. |
|
--start-after |
string |
Devuelve objetos que siguen al valor especificado en orden alfabético, excluyendo el valor mismo. |
|
--storage-class |
string |
Clase de almacenamiento para el objeto. Valores válidos:
|
|
--tagging |
string |
Etiquetas para el objeto, especificadas como pares clave=valor. |
|
--tagging-directive |
string |
Especifica cómo configurar las etiquetas para el objeto de destino. Valores válidos:
|
|
-u, --update |
/ |
Omite archivos en el destino que ya existen y tienen una hora de modificación más reciente que la del origen. Nota
Si el archivo de destino existe pero tiene una hora de modificación anterior a la del origen, el archivo se actualiza. |
|
--version-id |
string |
Especifique el ID de versión del objeto (VersionId). |
A partir de la versión 2.3.0 de ossutil, puede configurar las opciones --job, --parallel, --bigfile-threshold, --part-size y --write-buffer-size en un archivo de configuración. Agréguelas como entradas key=value en la sección de perfil correspondiente (por ejemplo, job=10) o utilice el comando ossutil config set. Las opciones de línea de comandos anulan la configuración del archivo de configuración.
Para obtener más información, consulte Command-line options.
Reglas de nomenclatura para objetos de destino:
En la copia de un solo archivo, si dest_prefix está vacío, el nombre del objeto de destino coincide con la ruta relativa del archivo de origen.
En la copia de un solo archivo, si dest_prefix termina con "/", el nombre del objeto de destino es dest_prefix + ruta relativa del origen.
En la copia de un solo archivo, si dest_prefix no termina con "/", el nombre del objeto de destino coincide con dest_prefix.
En la copia por lotes, si dest_prefix termina con "/", el nombre del objeto de destino es dest_prefix + ruta relativa del origen.
En la copia por lotes, si dest_prefix no termina con "/", el nombre del objeto de destino es dest_prefix + "/" + ruta relativa del origen.
Ejemplos
-
Copiar un solo archivo
ossutil cp oss://examplebucket1/examplefile.txt oss://examplebucket1/desfolder/ -
Copiar archivos incrementales
Durante la copia por lotes, utilice la opción --update para omitir archivos en el destino que ya existen y tienen una hora de modificación más reciente que la del origen:
ossutil cp oss://examplebucket1/srcfolder1/ oss://examplebucket1/desfolder/ -r --update -
Copia de bucket a bucket tras replicación en la misma región
-
Utilice la opción
--checksumpara copia incremental basada en sumas de verificación: Ideal cuando se requiere una consistencia estricta del contenido (por ejemplo, al reintentar una copia por lotes con errores mientras se omiten los archivos copiados correctamente). El sistema sigue esta lógica:Compara primero los tamaños de archivo.
Si los tamaños coinciden, calcula y compara las sumas de verificación CRC64.
Copia solo si las sumas de verificación difieren.
ossutil cp oss://examplebucket1/srcfolder1/ oss://examplebucket1/desfolder/ -r --checksum -
Utilice la opción
--ignore-existingpara omitir archivos existentes: Útil cuando desea omitir archivos que ya existen en el destino sin sobrescribirlos:ossutil cp oss://examplebucket1/srcfolder1/ oss://examplebucket1/desfolder/ -r --ignore-existing
-
-
Renombrar un archivo
ossutil cp oss://examplebucket1/examplefile.txt oss://examplebucket1/example.txtAl renombrar un archivo con el comando cp , el archivo original permanece intacto. Elimínelo manualmente después de cambiarle el nombre si es necesario.
-
Modificar etiquetas de objetos
ossutil cp oss://examplebucket1/examplefile.txt oss://examplebucket1/ --tagging "abc=1&bcd=2&……"