Como usar o Controle de versão de objeto

Nesta página, você aprende a configurar o Controle de versão de objeto com exemplos de utilização do recurso. Para uma descrição desse recurso, consulte Controle de versão de objeto.

Como configurar o Controle de versão de objeto

Nas próximas seções, mostramos como ativar e desativar o controle de versão de objeto com a ferramenta gsutil, a API JSON e a API XML. O controle de versão de objeto não é compatível atualmente com o Console do Google Cloud Platform.

Como ativar o controle de versão de objeto

Para ativar o controle de versão de objeto em um intervalo, faça o seguinte:

gsutil

Use o comando gsutil versioning set on, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:

gsutil versioning set on gs://[BUCKET_NAME]

APIs REST

API JSON

  1. Consiga um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth.
  2. Crie um arquivo .json com as informações a seguir:
  3. {
      "versioning": {
        "enabled": true
      }
    }
  4. Use o cURL para chamar a API JSON com uma solicitação PATCH Bucket, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:
    curl -X PATCH --data-binary @[JSON_FILE_NAME].json \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        -H "Content-Type: application/json" \
        "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]?fields=versioning"

API XML

  1. Consiga um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth.
  2. Crie um arquivo .xml com as seguintes informações, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:
    <VersioningConfiguration>
      <Status>Enabled</Status>
    </VersioningConfiguration>
  3. Use o cURL para chamar a API XML com uma solicitação PUT Bucket e um parâmetro de string de consulta versioning, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:
    curl -X PUT --data-binary @[XML_FILE_NAME].xml \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://storage.googleapis.com/[BUCKET_NAME]?versioning"

Depois que o controle de versão de objeto é ativado, o Cloud Storage cria uma versão arquivada de um objeto sempre que a versão ativa dele é substituída ou excluída.

Como desativar o Controle de versão de objeto

Para desativar o Controle de versão de objeto em um intervalo:

gsutil

Use o comando gsutil versioning set off, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:

gsutil versioning set off gs://[BUCKET_NAME]

APIs REST

API JSON

  1. Consiga um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth.
  2. Crie um arquivo .json com as informações a seguir:
  3. {
      "versioning": {
        "enabled": false
      }
    }
  4. Use o cURL para chamar a API JSON com uma solicitação PATCH Bucket, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:
    curl -X PATCH --data-binary @[JSON_FILE_NAME].json \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        -H "Content-Type: application/json" \
        "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]?fields=versioning"

API XML

  1. Consiga um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth.
  2. Crie um arquivo .xml com as seguintes informações, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:
    <VersioningConfiguration>
      <Status>Suspended</Status>
    </VersioningConfiguration>
  3. Use o cURL para chamar a API XML com uma solicitação PUT Bucket e um parâmetro de string de consulta versioning, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:
    curl -X PUT --data-binary @[XML_FILE_NAME].xml \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://storage.googleapis.com/[BUCKET_NAME]?versioning"

Como verificar se o controle de versão de objeto está ativado

Para verificar se o Controle de versão de objeto está ativado em um intervalo:

gsutil

Use o comando gsutil versioning get, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:

gsutil versioning get gs://[BUCKET_NAME]

Se o controle de versão de objeto estiver ativado, a resposta será como esta:

gs://[BUCKET_NAME]: Enabled

APIs REST

API JSON

  1. Consiga um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth.
  2. Use o cURL para chamar a API JSON com uma solicitação GET Bucket, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:
    curl -X GET -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]?fields=versioning"

API XML

  1. Consiga um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth.
  2. Use o cURL para chamar a API XML com uma solicitação GET Bucket e um parâmetro de string de consulta versioning, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:
    curl -X GET \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://storage.googleapis.com/[BUCKET_NAME]?versioning"

Como trabalhar em objetos com controle de versão

Nas próximas seções, você aprende a trabalhar em objetos com controle de versão. Para ver um exemplo detalhado de como trabalhar com o controle de versão de objetos, consulte Exemplo de controle de versão de objetos.

Como listar versões de objetos arquivados

Para listar versões ativas ou arquivadas de um objeto e ver os números de generation:

gsutil

Use o comando gsutil ls -a, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:

gsutil ls -a gs://[BUCKET_NAME]

A resposta será parecida com esta:

gs://[BUCKET_NAME]/[OBJECT_NAME1]#[GENERATION_NUMBER1]
gs://[BUCKET_NAME]/[OBJECT_NAME1]#[GENERATION_NUMBER2]
gs://[BUCKET_NAME]/[OBJECT_NAME1]#[GENERATION_NUMBER3]
...

APIs REST

API JSON

  1. Consiga um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth.
  2. Use o cURL para chamar a API JSON com uma solicitação LIST Object, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:
    curl -X GET -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/o?versions=true"

As versões arquivadas dos objetos têm uma propriedade "timeDeleted".

API XML

  1. Consiga um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth.
  2. Use o cURL para chamar a API XML com uma solicitação GET Bucket e o parâmetro de string de consulta versions, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:
    curl -X GET -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://storage.googleapis.com/[BUCKET_NAME]?versions"

Há algumas diferenças nos resultados da solicitação GET quando se usa o parâmetro da consulta versions e quando ele não é usado. Especificamente, o Cloud Storage retorna as seguintes informações quando um parâmetro de consulta versions é incluído na solicitação:

  • um elemento Version contendo informações sobre cada objeto
  • um elemento DeletedTime contendo a hora em que o objeto foi arquivado (excluído ou substituído)
  • um elemento IsLatest indicando se o objeto específico é a versão mais recente
  • um elemento NextGenerationMarker é retornado quando a listagem de objetos é parcial. Isso ocorre quando existem muitas versões do objeto em um intervalo. Use o valor desse elemento no parâmetro da consulta generationmarker de solicitações subsequentes para continuar do ponto em que você parou. O parâmetro de consulta generationmarker e o parâmetro marker são usados na página da mesma forma, por meio da listagem de um intervalo sem controle de versão.

Como acessar versões de objetos arquivados

Para acessar a versão arquivada de um objeto:

gsutil

  1. Anexe o número de generation do objeto arquivado ao nome do objeto, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:

    [OBJECT_NAME]#[GENERATION_NUMBER]
  2. Usando a string da etapa 1, continue normalmente como faria com um objeto ativo.

APIs REST

JSON API

  1. Anexe o número de generation do objeto arquivado ao URI do objeto, substituindo os [VALUES_IN_BRACKETS] pelos valores apropriados:
    https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/o/[OBJECT_NAME]?generation=[GENERATION_NUMBER]
  2. Usando o URI da etapa 1, continue normalmente como faria com um objeto ativo.

API XML

  1. Anexe o número de generation do objeto arquivado ao URI do objeto, substituindo os [VALUES_IN_BRACKETS] pelos valores apropriados:
    https://storage.googleapis.com/[BUCKET_NAME]/[OBJECT_NAME]?generation=[GENERATION_NUMBER]
  2. Usando o URI da etapa 1, continue normalmente como faria com um objeto ativo.

Como copiar versões de objetos arquivados

Para copiar a versão arquivada de um objeto:

gsutil

Use o comando gsutil cp, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:

gsutil cp gs://[SOURCE_BUCKET_NAME]/[SOURCE_OBJECT_NAME]#[GENERATION_NUMBER] gs://[DESTINATION_BUCKET_NAME]/[DESTINATION_OBJECT_NAME]

Se bem-sucedida, a resposta será parecida com esta:

Operation completed over 1 objects/58.8 KiB.

APIs REST

API JSON

  1. Consiga um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth.
  2. Use o cURL para chamar a API JSON com uma solicitação POST Object, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:
    curl -X POST \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        -H "Content-Length: 0" \
        "https://www.googleapis.com/upload/storage/v1/b/[SOURCE_BUCKET_NAME]/o/[SOURCE_OBJECT_NAME]/rewriteTo/b/[DESTINATION_BUCKET_NAME]/o/[NAME_OF_COPY]?sourceGeneration=[GENERATION_NUMBER]"

API XML

  1. Consiga um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth.
  2. Use o cURL para chamar a API XML com uma solicitação PUT Object, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:
    curl -X PUT \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        -H "x-goog-copy-source: [SOURCE_BUCKET_NAME]/[SOURCE_OBJECT_NAME]" \
        -H "x-goog-copy-source-generation:[GENERATION_NUMBER]" \
        "https://storage.googleapis.com/[DESTINATION_BUCKET_NAME]/[NAME_OF_COPY]"

Como excluir versões de objetos arquivados

Para excluir a versão arquivada de um objeto:

gsutil

Use o comando gsutil rm, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:

gsutil rm gs://[BUCKET_NAME]/[OBJECT_NAME]#[GENERATION_NUMBER]

Se bem-sucedida, a resposta será parecida com esta:

Operation completed over 1 objects.

APIs REST

API JSON

  1. Consiga um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth.
  2. Use o cURL para chamar a API JSON com uma solicitação DELETE Object, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:
    curl -X DELETE \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/o/[OBJECT_NAME]?generation=[GENERATION_NUMBER]"

API XML

  1. Consiga um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth.
  2. Use o cURL para chamar a API XML com uma solicitação DELETE Object, substituindo [VALUES_IN_BRACKETS] pelos valores apropriados:
    curl -X DELETE \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://storage.googleapis.com/[BUCKET_NAME]/[OBJECT_NAME]?generation=[GENERATION_NUMBER]"
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.