Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2023-04-27 GMT+08:00

Control de versiones

Escenario de la aplicación

OBS puede almacenar varias versiones de un objeto. Puede buscar y restaurar las diferentes versiones rápidamente, o restaurar los datos en caso de que se realicen operaciones incorrectas o se presenten fallas en la aplicación.

De forma predeterminada, el control de versiones está deshabilitado para los nuevos los bucket de OBS. Los nuevos objetos sobrescribirán los objetos existentes en caso de que tengan los mismos nombres.

Habilitación del control de versiones

  • Al habilitar el control de versiones no se cambian las versiones ni el contenido de los objetos existentes en el bucket. El ID de versión de un objeto es nulo antes de habilitar el control de versiones. Si se carga un objeto homónimo después de habilitar el control de versiones, se asignará un ID de versión al objeto. Para más detalles, consulte Figura 1.
    Figura 1 Control de versiones (habilitado o deshabilitado)
  • Con el control de versiones habilitado, OBS asigna automáticamente un ID de versión único a un objeto recién cargado. Cuando se vuelve a cargar un objeto con el mismo nombre que un objeto existente, ambos objetos se almacenan en OBS con el mismo nombre pero diferentes ID de versión. Para más detalles, consulte Figura 2.
    Figura 2 Versiones (diferentes ID de versión para los objetos del mismo nombre)
    Tabla 1 Descripción de la versión

    Versión

    Descripción

    Versión más reciente

    Después de habilitar el control de versiones, cada operación en un objeto dará como resultado el almacenamiento del objeto con un nuevo ID de versión. El ID de versión generado en la última operación se denomina versión más reciente.

    Versiones históricas

    Después de habilitar el control de versiones, cada operación en un objeto dará como resultado el almacenamiento del objeto con un nuevo ID de versión. Los ID de versión generados en operaciones distintas de la última operación se denominan versiones históricas.

  • Los objetos más recientes de un bucket se devuelven por defecto después de una solicitud GET.
  • Los objetos se pueden descargar por ID de versión. Por defecto, se descarga el último objeto si no se especifica el ID de la versión.
  • Puede seleccionar un objeto y hacer clic en Delete a la derecha para borrarlo. Una vez eliminado el objeto, OBS genera un Delete Marker con un ID de versión único para el objeto eliminado, y el objeto eliminado se muestra en la lista Deleted Objects. Si intenta acceder al objeto eliminado, se mostrará un error 404.
    Figura 3 Objeto con un delete marker
  • Puede recuperar un objeto eliminado mediante la eliminación de la versión del objeto que tiene el Delete Marker.
  • Después de eliminar un objeto, puede especificar el número de versión en Objetos eliminados para eliminar permanentemente el objeto de la versión especificada.
  • Un objeto se muestra en la lista de objetos o en la lista de objetos eliminados. Nunca se mostrará en ambas listas simultáneamente.

    Por ejemplo, después de cargar y eliminar el objeto A, se mostrará en la lista Deleted Objects. Si vuelve a cargar un objeto de nombre A, el objeto A se mostrará en la lista Objects y el objeto A eliminado anteriormente ya no se mostrará en la lista Deleted Objects. Para más detalles, consulte Figura 4.

    Figura 4 Subir un objeto homónimo después de eliminar el objeto original
  • Se cobran todas las versiones de objetos, excepto aquellas con el Delete Marker almacenado en OBS.

Suspensión del control de versiones

Una vez habilitada la función de control de versiones, se puede suspender pero no se puede deshabilitar. Una vez que se suspende el control de versiones, los identificadores de versión ya no se asignarán a los objetos recién cargados. Si ya existe un objeto con el mismo nombre y no tiene un ID de versión asignado, el objeto será sobrescrito.

Figura 5 Versiones de objetos en el escenario cuando se suspende el control de versiones

Si no es necesario controlar las versiones de objetos de un bucket, puede suspender la función de control de versiones.

  • Las versiones históricas se conservarán en OBS. Si no necesita estas versiones históricas, elimínelas manualmente.
  • Los objetos se pueden descargar por ID de versión. Por defecto, se descarga el último objeto si no se especifica el ID de la versión.
  • Todas las versiones históricas de objetos almacenados en OBS, excepto las que tienen el Delete Marker, se cobran.

Diferencias entre escenarios cuando el control de versiones está suspendido y desactivado

Si se elimina un objeto cuando el control de versiones está suspendido, se genera una versión con ID nulo y Delete Marker, independientemente de si el objeto tiene versiones históricas. Pero, si el control de versiones está deshabilitado, la misma operación no generará una versión con el Delete Marker.

Después de habilitar el control de versiones, cada versión histórica de un objeto se almacena y ocupa espacio de almacenamiento. OBS cobra tarifas de almacenamiento para todas las versiones. Tenga cuidado para evitar cargos adicionales de almacenamiento.

¿Cómo usar esta función?

Puede configurar el control de versiones a través de la consola OBS, las API y los SDK.

Herramienta

Referencia

Consola de OBS

Configuración de Versiones

SDK

OBS admite kits de desarrollo de software (SDK) en varios idiomas. Para obtener más información, consulte la guía para desarrolladores correspondiente en la página de Descripción general del SDK.

API

Configuración del control de versiones para un bucket