Cloud Storage verwenden

Sie können Cloud Storage zum Speichern und Bereitstellen von Dateien wie Filmen oder Bildern oder anderen statischen Inhalten verwenden.

In diesem Dokument wird beschrieben, wie Sie mit der Google Cloud-Clientbibliothek in Ihrer App Daten in Cloud Storage speichern und abrufen können.

Hinweis

  • Folgen Sie der Anleitung unter „Hello, World!“ für Ruby in App Engine, um eine Umgebung und ein Projekt einzurichten. Darin erfahren Sie auch mehr über die Strukturierung von Ruby-Anwendungen in App Engine. Notieren Sie sich Ihre Projekt-ID und bewahren Sie sie auf. Sie brauchen diese ID, um die in diesem Dokument beschriebene Beispielanwendung auszuführen.

  • Vergessen Sie nicht, einen Cloud Storage-Bucket für Ihre Anwendung zu erstellen. Rufen Sie dazu den folgenden Befehl auf:

    gsutil mb gs://[YOUR_BUCKET_NAME]
    
  • Machen Sie den Bucket öffentlich lesbar, damit er zum Bereitstellen von Dateien genutzt werden kann:

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

Beispiel herunterladen

So klonen Sie das Repository:

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

Projektkonfiguration bearbeiten und Abhängigkeiten installieren

Geben Sie in app.yaml für GCLOUD_STORAGE_BUCKET den Cloud Storage-Bucket an, den Sie zuvor für Ihr Projekt erstellt haben.

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

env_variables:
  GOOGLE_CLOUD_STORAGE_BUCKET: <your-bucket-name>

Sie müssen die gcloud-Bibliothek in Gemfile aufnehmen, um die Cloud Storage-Funktionen verwenden zu können.

source "https://rubygems.org"

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

Anwendungscode

Die Beispielanwendung zeigt eine Webseite an, die den Nutzer zur Angabe einer Datei auffordert, die in Cloud Storage gespeichert werden soll. Wenn der Nutzer eine Datei auswählt und auf „Submit“ (Senden) klickt, lädt der Upload-Handler den Inhalt der Datei in ein Blob und schreibt ihn in Cloud Storage.

Beachten Sie, dass nach dem Hochladen der Datei in Cloud Storage die öffentliche URL zu dieser Datei zurückgegeben wird, mit der Sie die Datei direkt aus Cloud Storage bereitstellen können. Es wird empfohlen, diesen Wert für die zukünftige Verwendung in Ihrer Anwendung zu speichern.

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

Weitere Informationen

Sie erhalten umfassende Informationen zu Cloud Storage in der Cloud Storage-Dokumentation.