Todos os produtos
Search
Central de documentação

Object Storage Service:PutObjectRetention

Última atualização: Sep 21, 2026

Defina uma política de retenção para uma versão específica de um objeto, impedindo que a exclua ou modifique até uma data especificada. Esta operação é essencial para cenários de conformidade que exigem imutabilidade de dados. As políticas de retenção no nível do objeto substituem a política de retenção no nível do bucket, permitindo um controle granular sobre objetos individuais.

Notas de uso

Importante

Atualmente, este recurso está disponível apenas mediante convite. Para solicitar acesso, entre em contato com o suporte técnico.

  • Antes de chamar esta operação, ative o ObjectWorm (Write Once Read Many) para o bucket chamando a operação PutBucketObjectWormConfiguration. Se o ObjectWorm não estiver ativado, a solicitação falhará com o erro InvalidRequest.

  • Para chamar esta operação, é necessário ter a permissão oss:PutObjectRetention. Você pode conceder essa permissão por meio de políticas do RAM ou políticas de bucket.

  • No modo de conformidade, você só pode estender o valor de RetainUntilDate, nunca reduzi-lo. Não defina uma data anterior à data de retenção atual, pois retorna um erro AccessDenied. Isso garante a imutabilidade dos dados para os requisitos de conformidade.

  • As políticas de retenção no nível do objeto definidas por esta operação substituem a política de retenção no nível do bucket. Isso permite aplicar requisitos de retenção mais rigorosos a objetos específicos, mantendo uma política padrão para o bucket.

  • Objetos anexáveis (appendable objects) não suportam políticas de retenção. Não defina uma política de retenção em um objeto anexável, pois a solicitação falhará.

  • O valor de RetainUntilDate deve ser uma data futura. O sistema rejeita datas passadas ou atuais.

  • As políticas de retenção funcionam com o controle de versão. Caso não especifique um versionId, a política será aplicada à versão atual (mais recente) do objeto. Para proteger versões específicas, inclua o ID da versão na sua solicitação.

  • Durante o período de retenção, o sistema impede que exclua, sobrescreva ou reduza a retenção das versões protegidas do objeto, nem mesmo pela conta raiz. Planeje os períodos de retenção com cuidado, pois eles não podem ser desfeitos no modo de conformidade.

Sintaxe da solicitação

PUT /ObjectName?retention HTTP/1.1
Content-MD5: ContentMD5
Content-Length: ContentLength
Content-Type: application/xml
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue

Parâmetros da solicitação

Parâmetro

Tipo

Obrigatório

Exemplo

Descrição

retention

N/A

Sim

N/A

Especifique que a operação configura uma política de retenção de objeto. Este é um parâmetro de consulta obrigatório para indicar a operação de retenção.

versionId

String

Não

CAEQNhiBgMDJgZCA0BYiIDc4MGZj****

O ID da versão do objeto. Se você não especificar este parâmetro, a operação será aplicada à versão mais recente do objeto.

Cabeçalhos da solicitação

Cabeçalho

Tipo

Obrigatório

Exemplo

Descrição

Content-MD5

String

Sim

B2M2Y8AsgTpgAmY7PhC****

O hash MD5 do corpo da solicitação. Este cabeçalho é usado para verificação da integridade dos dados.

Elementos do corpo da solicitação

Elemento

Tipo

Obrigatório

Exemplo

Descrição

Retention

Container

Sim

N/A

O contêiner para a política de retenção do objeto.

Pai: Nenhum

Filhos: Mode, RetainUntilDate

Mode

String

Sim

COMPLIANCE

O modo de retenção do objeto. Valor válido:

  • COMPLIANCE: Durante o período de retenção, nenhum usuário, incluindo o usuário raiz, exclua ou sobrescreva a versão protegida do objeto. O período de retenção não pode ser reduzido.

Pai: Retention

RetainUntilDate

String

Sim

2026-10-11T00:00:00.000Z

A data limite de retenção do objeto. O valor é uma data no formato ISO 8601. Antes dessa data, não exclua ou sobrescreva a versão do objeto. A data especificada deve ser no futuro.

No modo de conformidade, essa data só pode ser estendida e não pode ser reduzida.

Pai: Retention

Cabeçalhos da resposta

Cabeçalho

Exemplo

Descrição

x-oss-version-id

CAEQNhiBgMDJgZCA0BYiIDc4MGZj****

O ID da versão do objeto ao qual a política de retenção se aplica.

Exemplos

Exemplo 1: Definir uma política de retenção no modo de conformidade

  • Exemplo de solicitação

    PUT /exampleobject?retention&versionId=CAEQNhiBgMDJgZCA0BYiIDc4MGZj**** HTTP/1.1
    Date: Thu, 17 Mar 2026 11:18:32 GMT
    Content-MD5: B2M2Y8AsgTpgAmY7PhC****
    Content-Type: application/xml
    Content-Length: 162
    Host: examplebucket.oss-cn-hangzhou.aliyuncs.com
    Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20260317/cn-hangzhou/oss/aliyun_v4_request,Signature=****
    
    <Retention>
      <Mode>COMPLIANCE</Mode>
      <RetainUntilDate>2026-10-11T00:00:00.000Z</RetainUntilDate>
    </Retention>
  • Exemplo de resposta

    HTTP/1.1 200 OK
    x-oss-request-id: 5374A2880232A65C2300****
    x-oss-version-id: CAEQNhiBgMDJgZCA0BYiIDc4MGZj****
    Date: Thu, 17 Mar 2026 11:18:32 GMT
    Content-Length: 0
    Server: AliyunOSS

Exemplo 2: Estender a data limite de retenção

O exemplo a seguir estende a data limite de retenção de um objeto para 11 de março de 2027. No modo de conformidade, a data limite de retenção só pode ser estendida e não pode ser reduzida.

  • Exemplo de solicitação

    PUT /exampleobject?retention&versionId=CAEQNhiBgMDJgZCA0BYiIDc4MGZj**** HTTP/1.1
    Date: Thu, 17 Mar 2026 11:18:32 GMT
    Content-MD5: D3N3Z9CtiVqhCnZ9RjE****
    Content-Type: application/xml
    Content-Length: 162
    Host: examplebucket.oss-cn-hangzhou.aliyuncs.com
    Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20260317/cn-hangzhou/oss/aliyun_v4_request,Signature=****
    
    <Retention>
      <Mode>COMPLIANCE</Mode>
      <RetainUntilDate>2027-03-11T00:00:00.000Z</RetainUntilDate>
    </Retention>
  • Exemplo de resposta

    HTTP/1.1 200 OK
    x-oss-request-id: 6485B3990232A65C3400****
    x-oss-version-id: CAEQNhiBgMDJgZCA0BYiIDc4MGZj****
    Date: Thu, 17 Mar 2026 11:20:15 GMT
    Content-Length: 0
    Server: AliyunOSS

Códigos de erro

Código de erro

Código de status HTTP

Descrição

InvalidRequest

400

O ObjectWorm não está ativado para o bucket. Não defina uma política de retenção de objeto.

AccessDenied

403

Você não pode reduzir a data limite de retenção no modo de conformidade.