En esta página, se describe la función de borrar de forma no definitiva, que conserva los objetos que se borran o reemplazan y los buckets que los contienen durante un período específico. La eliminación no definitiva ayuda a proteger tus datos contra la eliminación accidental o maliciosa, ya que retiene los objetos borrados en un estado borrado de forma no definitiva, durante el cual el objeto no se puede borrar de forma permanente. La eliminación no definitiva está habilitada de forma predeterminada en todos los buckets y tiene un período de retención de siete días, a menos que tú o tu organización hayan elegido una política diferente.
Descripción general
Cuando habilitas la eliminación no definitiva en un bucket, los objetos que se borran de él entran en un estado de eliminación no definitiva en lugar de borrarse de forma permanente. Los objetos borrados de forma no definitiva se comportan de las siguientes maneras:
Los objetos borrados de forma no definitiva no se pueden leer ni modificar.
Las operaciones de lista excluyen los objetos borrados de forma no definitiva de forma predeterminada.
Las únicas operaciones admitidas en los objetos borrados de forma no definitiva son enumerarlos o restablecerlos.
Funciones como Clase automática, Administración del ciclo de vida de los objetos, Bloqueo del bucket y Bloqueo de retención de objetos son compatibles con la eliminación no definitiva, pero no afectan a los objetos borrados de esta forma.
Para habilitar la eliminación no definitiva en un bucket, crea una política de eliminación no definitiva que especifique un período de retención que controle durante cuánto tiempo se retienen los objetos borrados de forma no definitiva antes de eliminarse de forma permanente.
Para obtener información sobre cómo crear y administrar una política de eliminación no definitiva para habilitar o inhabilitar la eliminación no definitiva en un bucket, consulta Cómo usar la eliminación no definitiva.
Políticas de eliminación no definitiva
Se puede crear, borrar o modificar una política de eliminación no definitiva durante la creación o actualización de un bucket. Una vez que se crea una política de eliminación no definitiva, puedes usarla para habilitar o inhabilitar la eliminación no definitiva para el bucket.
Las políticas de eliminación no definitiva se comportan de las siguientes maneras:
La actualización de la política de eliminación no definitiva de un bucket solo se aplica a los objetos que borras después de que la política de eliminación no definitiva entra en vigor. Los objetos que borraste antes de la actualización se conservan durante el tiempo que estaba vigente cuando se borraron.
Por ejemplo, supongamos que habilitas una política de eliminación no definitiva en tu bucket con el período de retención predeterminado de siete días y, luego, borras el objeto
cat.png
. En esta situación,cat.png
se retiene como un objeto borrado de forma no definitiva durante los próximos siete días y, luego, se borra de forma permanente. Esto ocurre incluso si, más adelante, cambias o quitas la política de eliminación no definitiva de tu bucket.Si agregas un nuevo período de retención de eliminación no definitiva a un bucket existente, no se aplicará a ninguno de los objetos borrados antes de que la política de eliminación no definitiva entre en vigencia.
Si borras tu proyecto, no podrás usar la eliminación no definitiva para restablecer los buckets o los objetos que contiene, incluso si la eliminación no definitiva estaba habilitada. Para asegurarte de no perder tus datos en caso de una eliminación maliciosa o accidental, te recomendamos limitar el acceso a la eliminación a nivel del proyecto colocando una retención en tus proyectos o creando una copia de seguridad de los datos fundamentales de la empresa en buckets en un proyecto diferente.
Si se borra un bucket, los objetos que contiene no se borran de forma permanente, pero no se pueden mostrar ni restablecer, a menos que primero se restablezca el bucket borrado de forma no definitiva. Cuando restableces un bucket borrado de forma no definitiva, este se restablece sin objetos activos. Deberás realizar una operación de restauración de objetos o agregar objetos nuevos en ella. Para obtener más información sobre el uso de buckets borrados de forma no definitiva, consulta Cómo restablecer un bucket borrado de forma no definitiva.
Borra de forma no definitiva la duración de la retención
Cuando creas un bucket, se agrega una política de eliminación no definitiva predeterminada al bucket con un período de retención de 7 días, que es el período de retención mínimo para una política de eliminación no definitiva. Para mejorar la protección, puedes seleccionar cualquier duración de retención hasta un máximo de 90 días. Como alternativa, puedes establecer la duración de la retención en 0 días, lo que inhabilita la eliminación no definitiva para el bucket.
Dentro del período de retención de una política de eliminación no definitiva, puedes restablecer los objetos borrados, pero después de que finaliza el período, Cloud Storage borra los objetos de forma permanente. La duración de la retención de la eliminación no definitiva se mide en segundos. Sin embargo, algunas herramientas, como la consola de Google Cloud y la CLI de Google Cloud, te permiten configurar y ver la duración de la retención con otras unidades de tiempo para mayor comodidad.
Un día son 86,400 segundos.
Un mes son 31 días o 2,678,400 segundos.
En gcloud CLI, cuando especificas un período de retención, debes especificar un número entero y una unidad, en los que la unidad puede ser s
, d
o m
para indicar los segundos, días o meses, respectivamente. Por ejemplo, 7d43200s
establece un período de retención de 7 días y 43,200 segundos (siete días y medio).
Puedes establecer una duración máxima de retención de 7,776,000 segundos (90 días) o una duración mínima de retención es de 604,800 segundos (7 días). Cuando usas las API de REST, también puedes establecer la duración de la retención en un valor de 0, lo que inhabilita la política de eliminación no definitiva.
Cómo restablecer el comportamiento
Cuando restableces un objeto borrado de forma no definitiva, Cloud Storage crea una copia del objeto borrado de forma no definitiva en el mismo bucket del que se borró el objeto. Los metadatos del objeto restablecido son los mismos que los metadatos del objeto borrado. Al final del período de retención de la función borrar de forma no definitiva, Cloud Storage borra de forma permanente el objeto.
Puedes restablecer los objetos borrados de forma no definitiva antes de que finalice el período de retención de la función borrar de forma no definitiva.
El comportamiento de restablecimiento para la eliminación no definitiva se puede describir de la siguiente manera:
Si borras tu proyecto, Cloud Storage borra de forma permanente todos los buckets y objetos dentro de ese proyecto. En este caso, no puedes restablecer objetos ni buckets mediante la función de borrar de forma no definitiva. Por lo tanto, es importante tomar medidas para limitar el acceso a las eliminaciones a nivel de proyecto, como colocar una retención en los proyectos o crear una copia de seguridad de los datos fundamentales de la empresa en buckets en un proyecto diferente.
Un objeto restaurado siempre reemplaza su versión publicada: Si ya existe una versión publicada del objeto, la versión borrada de forma no definitiva reemplaza a la publicada, y la versión publicada preexistente se borra de forma no definitiva. En este caso, tu bucket contiene los siguientes objetos:
El objeto activo reemplazado que está en estado borrado de forma no definitiva
Dos copias del objeto que se borró de forma no definitiva: una copia publicada y otra copia aún no borrada de forma no definitiva
Las copias de objetos generan cargos hasta que se borran de forma permanente: Las copias de objetos generan cargos de almacenamiento hasta que los objetos borrados de forma no definitiva se borran de forma permanente después de que finalice el período de retención. Para obtener más información sobre los costos asociados con los objetos borrados de forma no definitiva, consulta Precios de Cloud Storage.
Los objetos borrados de forma no definitiva se pueden restablecer con varios métodos: puedes restablecer los objetos borrados de forma no definitiva de manera síncrona si especificas una lista de objetos, o puedes crear una operación de larga duración para restablecer de forma masiva los objetos borrados entre dos marcas de tiempo.
Si intentas restablecer buckets que se borraron de forma no definitiva antes del 6 de agosto de 2024, se mostrará un error que indica
The specified bucket does not exist
y deberás comunicarte con el servicio de Atención al cliente de Cloud para realizar el restablecimiento.
Restablece y recupera metadatos de objetos en buckets con el espacio de nombres jerárquico habilitado
En los buckets de Cloud Storage con el espacio de nombres jerárquico habilitado,
pueden ocurrir objetos borrados de forma no definitiva duplicados. Los objetos duplicados comparten los mismos valores name
y generation
, lo que genera una posible ambigüedad durante el restablecimiento.
Cómo se producen los objetos duplicados
Para comprender cómo pueden ocurrir objetos duplicados con valores de name
y generation
idénticos, considera dos objetos folderA/my-object.txt
y folderB/my-object.txt
y realiza la siguiente secuencia de acciones en los objetos:
- Borra de forma no definitiva el objeto
folderA/my-object.txt
. - Borra la carpeta superior del objeto
folderA/my-object.txt
,folderA
. - Cambia el nombre de
folderB
afolderA
. Luego, el objetofolderB/my-object.txt
se convierte enfolderA/my-object.txt
. - Objeto borrado de forma no definitiva
folderA/my-object.txt
que tiene el mismoname
que el objeto borrado anteriormente.
Cada versión de un objeto en Cloud Storage tiene un valor generation
único. Sin embargo, si los objetos folderA/my-object.txt
y folderB/my-object.txt
se crean de forma independiente y no se relacionan entre sí, es posible que tengan el mismo valor generation
de forma coincidente.
Como resultado, es posible tener dos objetos con eliminación diferida que tengan el mismo valor de name
(folderA/my-object.txt
) y generation
.
Para asegurarte de restablecer o recuperar los metadatos del objeto my-object.txt
previsto (ya que ahora hay dos objetos con el mismo valor de name
y generation
), debes proporcionar un identificador único.
Identificación de objetos únicos con restoreToken
El restoreToken
identifica de forma única el objeto correcto que deseas restablecer o recuperar. Para obtener el valor de restoreToken
, puedes enumerar los objetos borrados de forma no definitiva en un bucket.
Para obtener más información, consulta cómo mostrar objetos borrados de forma no definitiva.
Consideraciones y errores
Ten en cuenta la siguiente información y los posibles errores que podrías encontrar cuando trabajes con objetos borrados de forma diferida duplicados en buckets con el espacio de nombres jerárquico habilitado:
Es muy improbable que ocurran dos objetos no relacionados que tengan el mismo valor de
generation
, y la secuencia específica de acciones necesarias para que también terminen con el mismoname
hace que esta situación sea aún más rara.Como la ocurrencia es poco frecuente, es posible que el parámetro
restoreToken
no sea necesario para la gran mayoría de los casos de uso. Sin embargo, puedes usarrestoreToken
para la recuperación precisa de objetos cuando se producen objetos borrados de forma diferida duplicados con el mismo valor dename
ygeneration
.Si intentas restablecer o recuperar los metadatos de objetos borrados de forma diferida sin especificar
restoreToken
y hay varios objetos que coinciden con el valor especificado dename
ygeneration
, recibirás un error que indica que debes especificarrestoretoken
.Si intentas restablecer o recuperar los metadatos de objetos borrados de forma no definitiva proporcionando valores incorrectos de
restoreToken
,name
ogeneration
, recibirás un error que indica que la clave especificada no existe.
Consideraciones con otras funciones
Cuando la eliminación no definitiva está habilitada, tiene las siguientes interacciones con otras funciones de Cloud Storage:
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 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 convierten en no actuales, y los objetos no actuales borrados se borran de forma no definitiva.
Control de versiones de objetos
Cuando borras un objeto activo, 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.
-
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 sus políticas de retención. Luego, la eliminación no definitiva proporciona una capa adicional de protección, ya que retiene los objetos borrados durante un período de retención de eliminación no definitiva independiente.
-
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.
Recommender: Puedes habilitar la API de Recommender para recibir sugerencias y estadísticas sobre cómo habilitar o inhabilitar la eliminación sin confirmación según los costos y el uso de Facturación de Cloud. Para obtener más información, consulta Recomendador de eliminación de forma no definitiva.
¿Qué sigue?
- Aprende a usar borrar de forma no definitiva.
- Obtén más información sobre cómo usar objetos borrados de forma no definitiva.
- Obtén más información sobre la restricción de la política
storage.softDeletePolicySeconds
.