Control de versiones
Escenarios
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.
Restricciones
Cuando habilita WORM para un bucket, OBS activa automáticamente el control de versiones y el control de versiones no se puede suspender más tarde para ese bucket.
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 obtener más información, véase Figura 1.
- 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 obtener más información, véase Figura 2.
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 por eliminar el marcador de eliminación.
- Después de eliminar un objeto, puede especificar el número de versión en Deleted Objects 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 obtener más información, véase Figura 4.
- 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 ID 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.
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 elimina un objeto cuando se suspende el control de versiones, se genera una versión nula con 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 usarlo
Puede configurar el control de versiones a través de OBS Console, las API y los SDK.
Herramienta |
Referencia |
---|---|
OBS Console |
|
SDKs |
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 de los SDK. |
API |