Como usar o Cloud Storage

Use o Cloud Storage para disponibilizar arquivos como filmes, imagens ou outros conteúdos estáticos.

Neste documento, descrevemos como usar a biblioteca de cliente do Google Cloud no seu aplicativo para armazenar e recuperar dados do Cloud Storage.

Antes de começar

  • Siga as instruções em "Hello, World!" para Ruby no App Engine para configurar o ambiente e o projeto, além de compreender como aplicativos Ruby são estruturados no App Engine. Anote e guarde o ID do projeto. Você precisará dele para executar o aplicativo de amostra descrito neste documento.

  • Certifique-se de criar um intervalo do Cloud Storage para o aplicativo chamando o comando a seguir:

    gsutil mb gs://[YOUR_BUCKET_NAME]
    
  • Configure o intervalo como acessível para leitura pública para exibição de arquivos:

    gsutil defacl set public-read gs://[YOUR_BUCKET_NAME]
    

Fazer o download da amostra

Para clonar o repositório:

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

Editar a configuração do projeto e instalar as dependências

Em app.yaml, defina GCLOUD_STORAGE_BUCKET como o Cloud Storage criado anteriormente para o projeto.

runtime: ruby
env: flex
entrypoint: bundle exec ruby app.rb

env_variables:
  GOOGLE_CLOUD_STORAGE_BUCKET: <your-bucket-name>

É necessário incluir a biblioteca gcloud em Gemfile para usar os recursos do Cloud Storage.

source "https://rubygems.org"

gem "google-cloud-storage"
gem "sinatra"

Código do aplicativo

O aplicativo de amostra apresenta uma página da Web que solicita ao usuário um arquivo para ser armazenado no Cloud Storage. Depois que o usuário seleciona o arquivo e clica em enviar, o gerenciador de upload carrega o conteúdo do arquivo em um blob e o salva no Cloud Storage.

Após o upload do arquivo no Cloud Storage, o URL público dele é retornado. É possível usá-lo para disponibilizar o arquivo diretamente do Cloud Storage. É preciso armazenar esse valor no app para uso futuro.

require "sinatra"
require "google/cloud/storage"

storage = Google::Cloud::Storage.new
bucket  = storage.bucket ENV["GOOGLE_CLOUD_STORAGE_BUCKET"]

get "/" do
  # Present the user with an upload form
  '
    <form method="POST" action="/upload" enctype="multipart/form-data">
      <input type="file" name="file">
      <input type="submit" value="Upload">
    </form>
  '
end

post "/upload" do
  file_path = params[:file][:tempfile].path
  file_name = params[:file][:filename]

  # Upload file to Google Cloud Storage bucket
  file = bucket.create_file file_path, file_name, acl: "public"

  # The public URL can be used to directly access the uploaded file via HTTP
  file.public_url
end

Para saber mais

Consulte a documentação do Cloud Storage para informações completas.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Ambiente flexível do App Engine para documentos do Ruby