Todos os produtos
Search
Central de documentação

Object Storage Service:PutObjectRetention

Última atualização: Jul 03, 2026

Define uma política de retenção para uma versão específica de objeto e impede sua exclusão ou modificação até uma data determinada. Essa operação é fundamental em 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 do bucket e permitem controle granular sobre objetos individuais.

Observações de uso

Importante

Atualmente, esse 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) no bucket por meio da operação PutBucketObjectWormConfiguration. Se o ObjectWorm não estiver ativado, a solicitação falhará com o erro InvalidRequest.

  • Para executar esta operação, você precisa da permissão oss:PutObjectRetention. É possível conceder essa permissão por meio de políticas do RAM ou políticas de bucket.

  • No modo de conformidade, o valor de RetainUntilDate só pode ser estendido, nunca reduzido. Tentar definir uma data anterior à data de retenção atual resulta no erro AccessDenied, o que garante a imutabilidade dos dados para fins de conformidade.

  • As políticas de retenção definidas no nível do objeto por esta operação têm precedência sobre a política de retenção do bucket. Isso possibilita aplicar requisitos de retenção mais rigorosos a objetos específicos e manter uma política padrão para o bucket.

  • Objetos anexáveis não suportam políticas de retenção. A tentativa de configurar tal política em um objeto anexável causa falha na solicitação.

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

  • As políticas de retenção funcionam em conjunto com o versionamento. Se nenhum versionId for especificado, 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 solicitação.

  • Durante o período de retenção, as versões protegidas do objeto não podem ser excluídas, sobrescritas ou ter sua retenção encurtada — 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

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

versionId

String

Não

CAEQNhiBgMDJgZCA0BYiIDc4MGZj****

O ID da versão do objeto. Se este parâmetro não for especificado, 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 serve para verificar a integridade dos dados.

Elementos do corpo da solicitação

Elemento

Tipo

Obrigatório

Exemplo

Descrição

Retention

Container

Sim

N/A

O contêiner da 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, pode excluir ou sobrescrever 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 deve ser uma data no formato ISO 8601. Antes dessa data, a versão do objeto não pode ser excluída ou sobrescrita. A data especificada deve estar no futuro.

No modo de conformidade, essa data só pode ser estendida, nunca reduzida.

Pai: Retention

Cabeçalhos da resposta

Cabeçalho

Exemplo

Descrição

x-oss-version-id

CAEQNhiBgMDJgZCA0BYiIDc4MGZj****

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

Exemplos

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

  • Solicitação de exemplo

    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>
  • Resposta de exemplo

    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, nunca reduzida.

  • Solicitação de exemplo

    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>
  • Resposta de exemplo

    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 é possível definir uma política de retenção de objeto.

AccessDenied

403

Não é possível reduzir a data limite de retenção no modo de conformidade.