Como usar o Cloud Storage com o Ruby

Nesta página, você aprenderá como executar tarefas básicas no Cloud Storage usando a biblioteca de cliente do Google Cloud para Ruby. Além disso, é mostrado o código subjacente em Ruby que é usado para executar as tarefas.

Os custos gerados no Cloud Storage são baseados nos recursos que você usa. Este guia de início rápido geralmente usa menos de US$ 0,01 em recursos do Cloud Storage.

Antes de começar

  1. Tenha a versão 2.3 ou posterior do Ruby e a gem Ruby do Bundler (links em inglês).

  2. Em uma janela do terminal, crie um diretório para seu ambiente de trabalho e navegue até ele:

    mkdir gcs-programmatic-quickstart
    cd gcs-programmatic-quickstart

  3. Clone o repositório do GitHub que contém exemplos de uso das bibliotecas de cliente do Cloud Storage para Ruby e é fornecido com uma CLI para executar os exemplos:

    git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples.git

  4. Instale a biblioteca de cliente do armazenamento do Ruby para preparar seu ambiente:

    cd ruby-docs-samples/storage
    bundle install

    bundle install instala a gem google-cloud-storage definida no Gemfile de exemplo. Esta gem é usada pelos comandos deste tutorial.

  5. Faça login na sua Conta do Google.

    Se você ainda não tiver uma, inscreva-se.

  6. Configurar um projeto do Console do GCP.

    Configurar um projeto

    Clique para:

    • criar ou selecionar um projeto;
    • ativar a(s) Cloud Storage API necessária(s) para o projeto.
    • criar uma conta de serviço;
    • fazer o download de uma chave privada como JSON.

    É possível ver e gerenciar esses recursos a qualquer momento no Console do GCP.

  7. Defina seu projeto como uma variável de ambiente local:

    Linux ou MacOS

    export GOOGLE_CLOUD_PROJECT=[PROJECT-ID]

    Windows

    Com o PowerShell:

    $env:GOOGLE_CLOUD_PROJECT=[PROJECT-ID]

    Com o prompt de comando:

    set GOOGLE_CLOUD_PROJECT=[PROJECT-ID]

Criar um intervalo

Intervalos são os contêineres básicos que armazenam seus dados no Cloud Storage.

Para criar um intervalo, siga estas etapas:

  1. Use o comando a seguir e um nome exclusivo para criar um intervalo:

    bundle exec ruby buckets.rb create my-awesome-bucket

    Esse comando usa um intervalo chamado my-awesome-bucket. Escolha seu próprio nome de intervalo globalmente exclusivo.

    Se funcionar, o comando retornará:

    Created bucket: my-awesome-bucket

    Você acabou de criar um intervalo para armazenar seus dados.

Fazer upload de um objeto para seu intervalo

Imagem de um gatinho.

  1. Clique com o botão direito na imagem acima e salve-a em algum lugar do seu computador, por exemplo, na área de trabalho.

  2. Use o comando a seguir para copiar a imagem do local em que você a salvou para o intervalo criado:

    bundle exec ruby files.rb upload my-awesome-bucket ~/Desktop/kitten.png kitten.png

    Se funcionar, o comando retornará:

    Uploaded kitten.png

    Você acabou de armazenar um objeto no intervalo.

Fazer o download de um objeto do intervalo

  1. Use o comando a seguir para fazer o download da imagem que você armazenou no intervalo para algum lugar no seu computador, como na área de trabalho:

    bundle exec ruby files.rb download my-awesome-bucket kitten.png ~/Desktop/kitten2.png

    Se funcionar, o comando retornará:

    Downloaded kitten.png

    Você acabou de fazer o download da imagem do seu intervalo.

Copiar um objeto no intervalo

  1. Use o seguinte comando para criar uma cópia da sua imagem no intervalo:

    bundle exec ruby files.rb copy my-awesome-bucket kitten.png my-awesome-bucket kitten3.png

    Se for bem-sucedido, o comando retornará:

    kitten.png in my-awesome-bucket copied to kitten3.png in my-awesome-bucket

    Você acabou de copiar um objeto no seu intervalo.

Listar o conteúdo de um intervalo

  1. Use o seguinte comando para listar o conteúdo do intervalo:

    bundle exec ruby files.rb list my-awesome-bucket

    Se for bem-sucedido, o comando retornará:

    kitten.png
    kitten3.png
    

    Você acabou de ver o conteúdo do seu intervalo.

Conceder acesso ao intervalo

  1. Use o comando a seguir para conceder a outra pessoa uma permissão específica ao endereço de e-mail para também controlar os objetos no seu intervalo:

    bundle exec ruby iam.rb add_bucket_iam_member my-awesome-bucket roles/storage.objectAdmin user:jane@gmail.com

    Se funcionar, o comando retornará:

    Added user:jane@gmail.com with role roles/storage.objectAdmin to my-awesome-bucket

    Agora, outra pessoa pode inserir dados e ver seu intervalo.

  2. Para remover essa permissão, use o comando:

    bundle exec ruby iam.rb remove_bucket_iam_member my-awesome-bucket roles/storage.objectAdmin user:jane@gmail.com

    Se for bem-sucedido, o comando retornará:

    Removed user:jane@gmail.com with role roles/storage.objectAdmin from my-awesome-bucket

    Você removeu o acesso do usuário a esse intervalo.

Exclua objetos

  1. Use o seguinte comando para excluir um objeto:

    bundle exec ruby files.rb delete my-awesome-bucket kitten.png

    Se funcionar, o comando retornará:

    Deleted kitten.png

    Essa cópia do objeto não é mais armazenada no Cloud Storage, embora a cópia denominada kitten3.png ainda exista.

Fazer a limpeza

Para evitar cobranças na sua conta do Google Cloud pelos recursos usados neste guia de início rápido, siga estas etapas:

  1. Use o seguinte comando para excluir kitten3.png do intervalo:

    bundle exec ruby files.rb delete my-awesome-bucket kitten3.png
  2. Use o seguinte comando para excluir o intervalo:

    bundle exec ruby buckets.rb delete my-awesome-bucket

    Se for bem-sucedido, o comando retornará uma mensagem semelhante a esta:

    Deleted bucket: my-awesome-bucket

    O intervalo e o respectivo conteúdo foram excluídos.

A seguir