Todos los productos
Search
Centro de documentos

Object Storage Service:cp (copy objects)

Última actualización: Sep 03, 2026

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:ListObjects y oss: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:

  • private: privado.

  • public-read: acceso de lectura público.

  • public-read-write: acceso de lectura y escritura público.

  • Default: hereda la configuración del bucket.

--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: .ossutil_checkpoint/.

--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:

  • default (predeterminado): Copia tanto las propiedades como las etiquetas del objeto. Las propiedades del objeto incluyen content-type, content-language, content-encoding, content-disposition, cache-control, expires y metadata (metadatos personalizados del usuario).

  • metadata: Copia solo las propiedades del objeto.

  • none: Copia solo los datos del objeto e ignora las propiedades y etiquetas.

-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: -f, --update, --size-only o --ignore-existing.

--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:

  • COPY

  • REPLACE

--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

--min-age 1h copia solo archivos modificados hace una hora o más.

--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

--max-age 1h copia solo archivos modificados durante la última hora.

--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

--min-mtime "2006-01-02T15:04:05" copia solo archivos modificados después de 2006-01-02T15:04:05.

--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: ossutil_output.

--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:

  • Standard: almacenamiento estándar.

  • IA: almacenamiento de acceso poco frecuente.

  • Archive: Archive Storage.

  • ColdArchive: almacenamiento Cold Archive.

  • DeepColdArchive: almacenamiento Deep Cold Archive.

--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:

  • COPY

  • REPLACE

-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).

Nota

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.

Nota

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 --checksum para 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:

      1. Compara primero los tamaños de archivo.

      2. Si los tamaños coinciden, calcula y compara las sumas de verificación CRC64.

      3. Copia solo si las sumas de verificación difieren.

      ossutil cp oss://examplebucket1/srcfolder1/ oss://examplebucket1/desfolder/ -r --checksum
    • Utilice la opción --ignore-existing para 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.txt 

    Al 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&……"