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 2024-09-18 GMT+08:00

Configuración de reglas del ciclo de vida del bucket

Funciones

Esta operación configura las reglas del ciclo de vida que pueden eliminar o migrar objetos de un bucket en un momento especificado. Situaciones típicas de uso:

  • Eliminar archivos cargados periódicamente. Algunos archivos cargados periódicamente solo deben conservarse durante una semana o un mes.
  • Eliminar archivos a los que se accede con frecuencia dentro de un cierto período de tiempo, pero que rara vez se accede después. Puede archivar estos documentos y luego programar el tiempo para la eliminación.
  • Se puede configurar el tiempo mínimo para la transición del almacenamiento del bucket a Warm o a Cold. El valor oscila entre 24 y 8640.

Puede realizar esta operación para crear o actualizar la configuración del ciclo de vida de un bucket.

  • Los objetos vencidos eliminados según una regla de ciclo de vida no se pueden recuperar.

Para realizar esta operación, debe tener el permiso PutLifecycleConfiguration. De forma predeterminada, solo el propietario del bucket puede realizar esta operación. El propietario del bucket puede conceder el permiso a otros usuarios configurando la política de bucket o la política de usuario.

La configuración del ciclo de vida permite a OBS eliminar objetos y clases de almacenamiento de objetos de transición en un momento programado. Para evitar que un usuario lo haga, se deben revocar los siguientes permisos otorgados al usuario:

  • DeleteObject
  • DeleteObjectVersion
  • PutLifecycleConfiguration

Si desea prohibir a un usuario establecer la configuración del ciclo de vida del bucket, revoque el permiso PutLifecycleConfiguration del usuario.

Sintaxis de solicitud

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
PUT /?lifecycle HTTP/1.1 
Host: bucketname.obs.region.myhuaweicloud.com Content-Length: length
Date: date
Authorization: authorization
Content-SHA256: SHA256
<?xml version="1.0" encoding="UTF-8"?> 
<LifecycleConfiguration> 
    <Rule> 
        <ID>id</ID> 
        <Prefix>prefix</Prefix> 
        <Status>status</Status> 
        <Expiration> 
            <Days>days</Days> 
        </Expiration> 
        <NoncurrentVersionExpiration> 
            <NoncurrentDays>days</NoncurrentDays> 
        </NoncurrentVersionExpiration> 
        <Transition>  
         <Days>30</Days>  
          <StorageClass>WARM</StorageClass>  
        </Transition>  
        <Transition>  
         <Days>60</Days>  
         <StorageClass>COLD</StorageClass>  
        </Transition>  
        <NoncurrentVersionTransition>  
         <NoncurrentDays>30</NoncurrentDays>  
         <StorageClass>WARM</StorageClass>  
        </NoncurrentVersionTransition>  
        <NoncurrentVersionTransition>  
         <NoncurrentDays>60</NoncurrentDays>  
         <StorageClass>COLD</StorageClass>  
        </NoncurrentVersionTransition>  
        <AbortIncompleteMultipartUpload>
            <DaysAfterInitiation>10</DaysAfterInitiation>
        </AbortIncompleteMultipartUpload>
    </Rule> 
</LifecycleConfiguration>

Parámetros de solicitud

Esta solicitud no contiene parámetros de mensaje.

Encabezados de solicitud

Tabla 1 enumera el encabezado de solicitud.

Tabla 1 Encabezados de solicitud

Encabezado

Descripción

Obligatorio

Content-SHA256

Resumen de 256 bits SHA-256 codificado en base64 del mensaje según SHA.

Tipo: string

Ejemplo: ogX9qClMrVJUBiUSIKDFM0qO41jJM0I5SCN55/OtMyI=

Elementos de solicitud

En esta solicitud, debe especificar la configuración del ciclo de vida en el cuerpo de la solicitud. La configuración del ciclo de vida se puede cargar en forma de un archivo XML con los elementos descritos en Tabla 2.

  • Si el control de versiones de un bucket está activado o suspendido, puede configurar NoncurrentVersionTransition o NoncurrentVersionExpiration para controlar el ciclo de vida de las versiones históricas de objetos. El ciclo de vida de una versión histórica depende del momento en que se convierte en una versión histórica (tiempo en que la versión es reemplazada por una nueva versión) y el valor de NoncurrentDays. Para la eliminación de objetos, si NoncurrentDays se establece en 1, una versión de objeto se eliminará solo después de que se convierta en histórica durante un día. Si la versión V1 del objeto A se crea en la primera fecha de un mes y la nueva versión V2 se carga en la quinta fecha del mes, V1 se convierte en una versión histórica. A las 00:00 de la séptima fecha del mes, V1 expirará. Si una versión de objeto no cumple las condiciones de eliminación, pero NoncurrentDays se establece en 1 y StorageClass en WARM se establece en la clase de almacenamiento Warm un día después de que se haya convertido en una versión histórica. Por ejemplo, la versión V1 del objeto A se crea el primer día de un mes y su nueva versión V2 se carga el quinto día del mes. Entonces V1 se convierte en una versión histórica. Un día después, es decir, a las 0 del séptimo día, V1 pasa a la clase de almacenamiento caliente. La eliminación o la transición del objeto después del tiempo de expiración puede retrasarse. El retraso es dentro de las 48 horas.
  • Los objetos se procesan de acuerdo con los siguientes procedimientos, si sus últimas versiones cumplen con la regla de caducidad y el control de versiones está habilitado o suspendido para el bucket.
    • Control de versiones habilitado:

      Si la última versión del objeto no es un marcador de eliminación, se insertará un nuevo marcador de eliminación para el objeto.

      Si la última versión del objeto es un marcador de eliminación y es la única versión del objeto, se eliminará esta última versión.

      Si el objeto de la última versión tiene el DeleteMarker y el objeto tiene otras versiones, todas las versiones del objeto permanecen sin cambios.

    • Control de versiones suspendido:

      Si la última versión del objeto no tiene el DeleteMarker y no es la versión nula, el objeto genera un nuevo DeleteMarker para la versión nula.

      Si la última versión del objeto no tiene el DeleteMarker pero es la versión nula, esta versión nula es sobrescrita por un nuevo DeleteMarker generado para la versión nula.

      Si la última versión del objeto es un marcador de eliminación y es la única versión del objeto, se eliminará esta última versión.

      Si el objeto de la última versión tiene el DeleteMarker y el objeto tiene otras versiones, todas las versiones del objeto permanecen sin cambios.

  • A continuación se enumera el procesamiento cuando el control de versiones está habilitado o suspendido para un bucket y los objetos de las últimas versiones cumplen las reglas de transición:
    • Si la última versión del objeto tiene el DeleteMarker no se transferirá la clase de almacenamiento de esta versión.
    • Si la última versión del objeto no tiene el DeleteMarker y cumple con la regla de transición, se realizará la transición de la clase de almacenamiento de esta versión.
Tabla 2 Elementos de respuesta para la configuración del ciclo de vida

Nombre

Descripción

Obligatorio

Date

Especifica que OBS ejecuta reglas de ciclo de vida para los objetos antes de la fecha especificada. La fecha debe cumplir con el formato ISO8601, y la hora debe cumplir con el formato UTC de 00:00:00. Por ejemplo, 2018-01-01T00:00:00.000Z indica que se eliminan los objetos cuyo tiempo de última modificación es anterior a 2018-01-01T00:00:00.000Z o se pasan a otra clase de almacenamiento. Los objetos cuyo tiempo de última modificación es igual o posterior al tiempo especificado no se eliminan ni se pasan a otra clase de almacenamiento.

Tipo: string

Nodo antecesor: Expiration, Transition

Requerido si el elemento Days está ausente.

Days

Especifica el número de días (desde la última actualización a la última versión del objeto) después de los cuales la regla del ciclo de vida tiene efecto.

Tipo: integer

Nodo antecesor: Expiration, Transition

Requerido si el elemento Date está ausente.

StorageClass

Clase de almacenamiento a la que se realiza la transición del objeto.

Tipo: string

Opciones de valor: WARM, COLD

Nodo antecesor: Transition, NoncurrentVersionTransition

Requerido si el elemento Transition o NoncurrentVersionTransition está presente.

Transition

Tiempo de transición y la clase de almacenamiento de objetos después de la transición (válido solo para la última versión del objeto).

Tipo: XML

Nodo hijo: Date or Days, StorageClass

Nodo antepasado: Rule

Requerido si el elemento NoncurrentVersionTransition, Expiration, AbortIncompleteMultipartUpload, or NoncurrentVersionExpiration está ausente.

Expiration

Contenedor para la regla de caducidad de objetos (solo aplicable a las últimas versiones de objetos).

Tipo: XML

Nodo secundario: Date o Days

Nodo antepasado: Rule

Requerido si está ausente Transition, NoncurrentVersionTransition, AbortIncompleteMultipartUpload, or NoncurrentVersionExpiration.

ID

Identificador único de una regla. El valor puede contener un máximo de 255 caracteres.

Tipo: string

Nodo antepasado: Rule

No

LifecycleConfiguration

Contenedor para reglas de ciclo de vida. Puede agregar varias reglas. El tamaño total de las reglas no puede exceder los 20 KB.

Tipo: XML

Nodo secundario: Regla

Nodo antepasado: ninguno

NoncurrentDays

Número de días en que la regla especificada entra en vigor después de que el objeto se convierta en una versión histórica (solo aplicable a la versión histórica de un objeto).

Tipo: integer

Nodo antepasado: NoncurrentVersionExpiration, NoncurrentVersionTransition

Requerido si el elemento NoncurrentVersionExpiration o NoncurrentVersionTransition está presente.

NoncurrentVersionTransition

Tiempo de transición de las versiones históricas de objetos y la clase de almacenamiento de objetos después de la transición.

Tipo: XML

Nodo secundario: NoncurrentDays, StorageClass

Nodo antepasado: Rule

Requerido si el elemento Transition, Expiration, AbortIncompleteMultipartUpload, o NoncurrentVersionExpiration está ausente.

NoncurrentVersionExpiration

Contenedor para el tiempo de caducidad de las versiones históricas de los objetos. Si el control de versiones está habilitado o suspendido para un bucket, puede configurar NoncurrentVersionExpiration para que elimine las versiones históricas de los objetos que coincidan con la regla del ciclo de vida (solo aplicable a las versiones históricas de los objetos).

Tipo: XML

Nodo secundario: NoncurrentDays

Nodo antepasado: Rule

No

AbortIncompleteMultipartUpload

Contenedor para especificar cuándo se eliminarán las partes no fusionadas (fragmentos) en una carga incompleta.

Tipo: XML

Nodo secundario: DaysAfterInitiation

Nodo antepasado: Rule

NOTA:

AbortIncompleteMultipartUpload no admite el filtrado por etiqueta.

Requerido si el elemento Transition, Expiration, NoncurrentVersionExpiration, o NoncurrentVersionTransition está ausente.

DaysAfterInitiation

Especifica el número de días desde el inicio de una carga incompleta de varias partes que OBS esperará antes de eliminar las partes no combinadas (fragmentos) de la carga.

Tipo: integer

Nodo antepasado: AbortIncompleteMultipartUpload

Requerido si el elemento AbortIncompleteMultipartUpload está presente.

Prefix

Prefijo de nombre de objeto que identifica uno o varios objetos a los que se aplica la regla.

Tipo: string

Nodo antepasado: Rule

Restricciones:

  1. Cuando configura una regla de ciclo de vida especificando un prefijo, si el prefijo especificado y el prefijo de una regla de ciclo de vida existente se superponen, OBS considera estas dos reglas como una y le prohíbe configurar esta regla. Por ejemplo, si hay una regla con el prefijo de objeto configurado abc en el sistema, no se puede configurar otra regla con el prefijo de objeto comenzando por abc.
  2. Si ya existe una regla de ciclo de vida basada en un prefijo de objeto, no se le permite configurar otra regla que se aplique a todo el bucket.

Yes

Rule

Contenedor para una regla de ciclo de vida específica.

Tipo: container

Nodo antepasado: LifecycleConfiguration

Status

Indica si la regla está habilitada.

Tipo: string

Nodo antepasado: Rule

Opciones de valor: Enabled, Disabled

Sintaxis de respuesta

1
2
3
HTTP/1.1 status_code
Date: date
Content-Length: length

Encabezado de respuesta

La respuesta a la solicitud utiliza encabezados comunes. Para más detalles, consulte Tabla 1.

Elementos de respuesta

Esta respuesta no contiene elementos.

Respuestas de error

No se devuelven respuestas de error especiales. Para obtener más información sobre las respuestas de error, consulte Tabla 2.

Ejemplo de solicitud

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
PUT /?lifecycle HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
Accept: */*
Date: WED, 01 Jul 2015 03:05:34 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:DpSAlmLX/BTdjxU5HOEwflhM0WI=
Content-SHA256: ogX9qClMrVJUBiUSIKDFM0qO41jJM0I5SCN55/OtMyI=
Content-Length: 919

<?xml version="1.0" encoding="utf-8"?>
<LifecycleConfiguration> 
  <Rule> 
    <ID>delete-2-days</ID>  
    <Prefix>test/</Prefix>  
    <Status>Enabled</Status>  
    <Expiration> 
      <Days>70</Days> 
    </Expiration>  
    <NoncurrentVersionExpiration> 
      <NoncurrentDays>70</NoncurrentDays> 
    </NoncurrentVersionExpiration>
    <Transition> 
      <Days>30</Days>  
      <StorageClass>WARM</StorageClass> 
    </Transition>  
    <Transition> 
      <Days>60</Days>  
      <StorageClass>COLD</StorageClass> 
    </Transition>  
    <NoncurrentVersionTransition> 
      <NoncurrentDays>30</NoncurrentDays>  
      <StorageClass>WARM</StorageClass> 
    </NoncurrentVersionTransition>  
    <NoncurrentVersionTransition> 
      <NoncurrentDays>60</NoncurrentDays>  
      <StorageClass>COLD</StorageClass> 
    </NoncurrentVersionTransition> 
    <AbortIncompleteMultipartUpload>
        <DaysAfterInitiation>10</DaysAfterInitiation>
    </AbortIncompleteMultipartUpload>
  </Rule>
</LifecycleConfiguration>

Ejemplo de respuesta

1
2
3
4
5
6
HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: BF26000001643670AC06E7B9A7767921
x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSvK6z8HV6nrJh49gsB5vqzpgtohkiFm
Date: WED, 01 Jul 2015 03:05:34 GMT
Content-Length: 0