Descripción general de la eliminación no definitiva

Configuración Uso

La eliminación no definitiva ayuda a proteger tus datos de Cloud Storage en caso de que un objeto o bucket se borre de forma accidental o maliciosa. La función de borrar de forma no definitiva conserva los objetos y buckets que se borran o reemplazan, ya que los mantiene en un estado de borrado no definitivo durante un período específico. Durante este tiempo, el objeto o el bucket no se pueden borrar de forma permanente y se pueden restablecer.

La eliminación no definitiva está habilitada de forma predeterminada para todos los buckets que la admiten, con un período de retención predeterminado de 7 días. Puedes establecer una duración de retención predeterminada diferente con etiquetas.

En esta página, se describe cómo funciona la eliminación no definitiva.

Políticas de eliminación no definitiva

Cuando la eliminación no definitiva está habilitada en un bucket, borrar el bucket o los objetos que contiene hace que el recurso entre en un estado de eliminación no definitiva en lugar de borrarse de forma permanente. Para habilitar la eliminación no definitiva en un bucket, debes establecer una política de eliminación no definitiva que defina cuánto tiempo se conservan los recursos borrados de forma no definitiva.

Las políticas de eliminación no definitiva funcionan de las siguientes maneras:

  • La política de eliminación no definitiva incluye un período de retención que define cuánto tiempo se conservan los recursos borrados de forma no definitiva antes de que se borren de forma permanente. La duración de la retención predeterminada es de 7 días, y puedes personalizarla entre 7 y 90 días. Para inhabilitar la eliminación no definitiva, establece la duración de la retención en 0.

  • Se establece automáticamente una política de eliminación no definitiva predeterminada en todos los buckets recién creados, excepto en los que usan productos o funciones que no son compatibles con la eliminación no definitiva (como los buckets zonales que usan Rapid Bucket).

  • Puedes establecer, editar o inhabilitar una política de eliminación no definitiva cuando creas o actualizas un bucket.

    Cuando editas una política de eliminación no definitiva, los cambios que realizas solo se aplican a los recursos que se borran después de que entra en vigor la nueva política. Los recursos que se borraron antes de que entrara en vigencia la nueva política se conservan durante el período de retención original que estaba vigente cuando se borró el recurso. En otras palabras, los recursos borrados de forma no definitiva existentes siguen adhiriéndose al período de retención que estaba activo en el momento de su eliminación.

    Por ejemplo, supongamos que estableces una política de eliminación no definitiva en un bucket que tiene un período de retención de siete días. Borras el objeto object-A.png, que se borra de forma no definitiva. Luego, cambias el período de retención de la política a 10 días y, luego, borras el objeto object-B.png, que también se borra de forma no definitiva. object-A.png se conservará durante siete días en el estado de borrado no definitivo, mientras que object-B.png se conservará durante 10 días.

    Los cambios en el período de retención de una política de eliminación no definitiva tardan hasta 30 segundos en propagarse.

Para obtener información sobre cómo establecer y administrar políticas de eliminación no definitiva en buckets, consulta Establece y administra políticas de eliminación no definitiva.

Propiedades de los recursos borrados de forma no definitiva

Cuando se borra un bucket o un objeto con una política de eliminación no definitiva activa, el recurso pasa a un estado de eliminación no definitiva. Puedes restablecer los recursos borrados de forma no definitiva durante su período de retención.

Los recursos borrados de forma no definitiva tienen las siguientes características:

  • Los objetos y buckets borrados de forma no definitiva no se pueden leer, modificar ni reemplazar. Las únicas operaciones admitidas son enumerarlas o restablecerlas.

  • De forma predeterminada, los recursos borrados de forma no definitiva se ocultan de las operaciones de lista. Para ver los recursos borrados de forma no definitiva, debes especificar de forma explícita una marca o un filtro para ver los recursos.

  • No puedes modificar un bucket borrado de forma no definitiva ni enumerar su contenido hasta que se restablezca el bucket. El método que usas para restablecer un bucket borrado de forma no definitiva afecta si los objetos del bucket también se restablecen:

    • Puedes restablecer un bucket borrado de forma no definitiva y sus objetos al mismo tiempo con la consola de Google Cloud .

    • Cuando restableces un bucket con Google Cloud CLI o la API de JSON, solo se restablece el bucket vacío. Luego, debes restablecer los objetos en una operación independiente para recuperar su contenido.

  • Si un bucket nuevo en vivo toma el nombre de un bucket, no podrás restablecer el bucket borrado de forma no definitiva hasta que se quite el bucket en vivo en conflicto.

  • Si se borra tu proyecto, cualquier bucket que tenga habilitada la eliminación no definitiva se retiene durante el período de retención de la eliminación no definitiva o el período de recuperación del proyecto deGoogle Cloud , el período que sea más corto. Después de este período, el bucket se borra de forma permanente.

    Si restableces un proyecto borrado, los buckets que estaban activos cuando se borró el proyecto se restablecen como buckets activos. Los buckets que se borraron de forma no definitiva cuando se borró el proyecto permanecen borrados de forma no definitiva hasta que finaliza su período de retención.

    Los buckets que no tienen habilitada la eliminación no definitiva podrían borrarse de inmediato cuando se borra un proyecto y es posible que no se puedan restablecer.

  • Algunas funciones de Cloud Storage son compatibles con las políticas de eliminación no definitiva, pero no afectan a los objetos borrados de forma no definitiva. Algunos ejemplos de estas capacidades son Autoclass, la Administración del ciclo de vida de los objetos, el bloqueo de buckets y el bloqueo de retención de objetos.

Para obtener instrucciones sobre cómo restablecer objetos o buckets borrados de forma no definitiva, consulta Restablece objetos borrados de forma no definitiva o Restablece buckets borrados de forma no definitiva.

Restablecimientos de objetos

Cuando restableces un objeto borrado de forma no definitiva, Cloud Storage crea una copia nueva y publicada de ese objeto en el mismo bucket. La versión original borrada de forma no definitiva permanece en segundo plano hasta que vence oficialmente su período de retención. En la siguiente lista, se describen los comportamientos principales de restablecimiento:

  • Cuando restableces un objeto, Cloud Storage genera una versión nueva del objeto. Para obtener más información sobre las versiones de objetos, consulta Inmutabilidad de objetos.

  • Si ya existe un objeto activo con el mismo nombre que un objeto borrado de forma no definitiva cuando restableces el objeto borrado de forma no definitiva, el objeto restablecido reemplazará la versión activa existente. Luego, el objeto reemplazado que antes estaba activo se borra de forma no definitiva automáticamente.

    En esta situación específica, tu bucket contendrá dos copias del objeto restablecido (una copia publicada nueva y la copia borrada de forma no definitiva anterior) junto con la versión borrada de forma no definitiva recientemente del objeto que se reemplazó.

  • Independientemente del nivel de almacenamiento original del objeto o de cualquier configuración activa de Autoclass, todos los objetos restablecidos se escriben en la clase de almacenamiento Standard.

Métodos de restablecimiento de objetos

Puedes restablecer los objetos borrados de forma no definitiva con una de las dos rutas de ejecución, según tus requisitos de escalamiento:

Restablece objetos con rutas duplicadas

Aunque es poco frecuente, pueden producirse objetos duplicados borrados de forma no definitiva con nombres y valores de generación idénticos en buckets con el espacio de nombres jerárquico habilitado. Este conflicto puede ocurrir si cambias el nombre de las carpetas que contienen objetos con nombres duplicados en buckets con el espacio de nombres jerárquico habilitado. En esta situación, es poco frecuente, pero posible, que dos objetos borrados de forma no definitiva compartan por coincidencia el mismo número de generación.

Para comprender esta situación, consulta el siguiente ejemplo:

  1. Tienes un objeto llamado cat.png dentro de una carpeta llamada my-folder-A. A cat.png se le asigna un número de generación de 999. Borras cat.png, que se borra de forma no definitiva.

  2. Borras la carpeta superior vacía my-folder-A.

  3. En otra parte de tu almacenamiento, tienes una carpeta llamada my-folder-B. Dentro de esta carpeta, hay un objeto diferente llamado cat.png. Por pura coincidencia, a este objeto cat.png también se le asigna un número de generación de 999. Cambias el nombre de my-folder-B a my-folder-A. Debido al espacio de nombres jerárquico, la ruta de acceso del objeto cambia a my-folder-A/cat.png.

  4. Borras este segundo cat.png, que se borra de forma no definitiva.

Ahora, hay dos objetos borrados de forma no definitiva llamados cat.png con el número de generación 999.

Para restablecer, enumerar o acceder a una versión específica de un objeto borrado de forma no definitiva entre duplicados, debes proporcionar un parámetro restoreToken único en tu solicitud. Se requiere incluir el parámetro restoreToken cuando se restablecen, enumeran o acceden a versiones de objetos borrados de forma no definitiva en buckets con el espacio de nombres jerárquico habilitado. Si no incluyes el parámetro restoreToken cuando existen objetos duplicados, se producirá un error que te solicitará el token. Si envías un token, un nombre o un número de generación incorrectos, se mostrará un error que indica que no se pudo encontrar el objeto. Para obtener más información sobre el parámetro restoreToken, consulta el método objects.restore.

Precios

Los objetos borrados de forma no definitiva siguen acumulando cargos de almacenamiento hasta que vence su período de retención y se borran de forma permanente. Los objetos que se borran de forma no definitiva antes de que finalice su duración mínima de almacenamiento generan cargos por eliminación temprana, a menos que ese objeto se haya almacenado en Standard Storage.

Para obtener información detallada sobre los costos asociados con la eliminación no definitiva, consulta Precios de Cloud Storage.

Reduce los costos de los objetos temporales cuando usas la eliminación no definitiva

Si un bucket contiene principalmente objetos temporales de corta duración, habilitar la eliminación no definitiva en el bucket puede aumentar significativamente los costos de almacenamiento. Para ayudar a reducir los costos de los objetos temporales, te recomendamos lo siguiente:

  • Si necesitas cambiar el nombre de un objeto, usa el método de la API de JSON objects.move para cambiar el nombre del objeto. No cambies el nombre del objeto copiándolo.

  • Almacena objetos temporales en buckets que no tengan habilitada la opción de borrar de forma no definitiva.

Por lo general, los objetos temporales tienen un ciclo de vida corto antes de que se borren. Los objetos temporales pueden ser los siguientes:

  • Datos que se usan como fuente para crear objetos compuestos

  • Datos que se vuelven a generar con un propósito de corta duración, como resultados de consultas o archivos de etapa de pruebas

  • Datos de cargas de trabajo que tienen una alta frecuencia de escritura y eliminación (por ejemplo, millones de eliminaciones diarias)

  • Datos que se pueden borrar de forma permanente por accidente sin que esto afecte la continuidad de la producción

Interacciones con otros productos y funciones

Cuando la eliminación no definitiva está habilitada, se comporta con otros productos y funciones de las siguientes maneras:

  • Rapid Bucket: Los buckets zonales que usan Rapid Bucket no admiten la eliminación no definitiva.

  • Administración del ciclo de vida de los objetos:

    • Las reglas de Administración del ciclo de vida de los objetos no afectan a los objetos borrados de forma no definitiva. No es posible usar la Administración del ciclo de vida de los objetos para cambiar la clase de almacenamiento de los objetos borrados de forma no definitiva ni para borrarlos de forma permanente.

    • Los objetos que borra la Administración del ciclo de vida de los objetos se borran de forma no definitiva. Si también tienes habilitado el Control de versiones de objetos en tu bucket, los objetos activos borrados se vuelven no actuales y los objetos no actuales borrados se borran de forma no definitiva.

  • Control de versiones de objetos: Cuando borras un objeto no actual, se borra de forma no definitiva.

  • Cargas multiparte de la API de XML: Las partes de la carga multiparte de la API de XML no están protegidas por la eliminación no definitiva.

  • Autoclass:

    • Las tarifas de administración de Autoclass no se evalúan para los objetos borrados de forma no definitiva.

    • Autoclass no cambia la clase de almacenamiento de los objetos borrados de forma no definitiva.

    • Cuando restableces un objeto borrado de forma no definitiva, el objeto resultante se establece en la clase Standard Storage.

  • Funciones de bloqueo del bucket y bloqueo de retención de objetos: Estas funciones evitarán que borres objetos hasta que cumplan con sus políticas de retención. Luego, la función borrar de forma no definitiva proporciona una capa adicional de protección, ya que conserva los objetos borrados durante un período de retención independiente de la función borrar de forma no definitiva.

  • Notificaciones de Pub/Sub: Restablecer una versión de un objeto borrada de forma no definitiva activa un evento OBJECT_FINALIZE.

  • Carpetas administradas: La eliminación no definitiva no puede restablecer las políticas de IAM en las carpetas administradas. Si borras de forma no definitiva un objeto y borras una carpeta administrada que otorga políticas de IAM para el objeto, es posible que debas volver a crear esas políticas de IAM antes de tener los permisos necesarios para restablecer el objeto borrado de forma no definitiva.

  • Etiquetas: Si creas un bucket sin incluir una configuración para borrar de forma no definitiva, la configuración predeterminada de Cloud Storage es crear el bucket con un período de retención de eliminación no definitiva de siete días. Puedes cambiar este valor predeterminado con una etiqueta. La etiqueta puede cambiar la duración de retención predeterminada de los buckets nuevos para que sea cualquier valor entre 7 y 90 días, o puede cambiar el valor predeterminado para inhabilitar la función borrar de forma no definitiva en buckets nuevos. También puedes usar etiquetas para inhabilitar la función borrar de forma no definitiva de forma predeterminada.

  • Recomendador: Puedes habilitar la API de Recommender para recibir sugerencias y estadísticas sobre cómo habilitar o inhabilitar la eliminación no definitiva según los costos y el uso de la Facturación de Cloud. Para obtener más información, consulta Recomendador de borrado no definitivo.

¿Qué sigue?