Ruby で Cloud Storage を使用する

このページでは、Ruby 用 Google Cloud クライアント ライブラリを使用して Cloud Storage の基本的なタスクを行う方法を説明し、タスクを実行するための基礎となる Ruby コードを示します。

Cloud Storage で発生する費用は、使用するリソースに基づきます。このクイックスタートでは、一般に $0.01 USD もかからない Cloud Storage リソースを使用します。

はじめに

  1. Ruby バージョン 2.3 以降と Bundler Ruby gem を用意します。

  2. ターミナル ウィンドウから、作業環境用のディレクトリを作成して移動します。

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

  3. Ruby 用 Cloud Storage クライアント ライブラリの使用例が含まれていて、これらの例を実行するための CLI が同梱された GitHub リポジトリのクローンを作成します。

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

  4. Ruby ストレージ クライアント ライブラリをインストールして、Ruby 環境を準備します。

    cd ruby-docs-samples/storage
    bundle install

    bundle install は、Gemfile の例で定義されている google-cloud-storage gem をインストールします。この gem は、このチュートリアルのコマンドで使用されます。

  5. Google アカウントにログインします。

    Google アカウントをまだお持ちでない場合は、新しいアカウントを登録します。

  6. GCP Console プロジェクトをセットアップします。

    プロジェクトをセットアップする

    クリックして、以下を行います。

    • プロジェクトを作成または選択します。
    • プロジェクトにCloud Storage API を有効にします。
    • サービス アカウントを作成します。
    • JSON として秘密鍵をダウンロードします。

    これらのリソースは、GCP Console でいつでも表示および管理できます。

  7. プロジェクトをローカル環境変数として設定します。

    Linux または macOS

    export GOOGLE_CLOUD_PROJECT=[PROJECT-ID]

    Windows

    PowerShell を使用する場合:

    $env:GOOGLE_CLOUD_PROJECT=[PROJECT-ID]

    コマンド プロンプトを使用する場合:

    set GOOGLE_CLOUD_PROJECT=[PROJECT-ID]

バケットの作成

バケットは、Cloud Storage でデータを格納する基本的なコンテナです。

バケットを作成するには:

  1. 次のコマンドと一意の名前を使用して、バケットを作成します。

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

    このコマンドは my-awesome-bucket という名前のバケットを使用します。独自のグローバルに固有なバケット名を選択する必要があります。

    成功した場合、次の内容が返されます。

    Created bucket: my-awesome-bucket

    バケットが作成されたので、データを保存できます。

オブジェクトのバケットへのアップロード

子猫の画像。

  1. 上の画像を右クリックして、デスクトップなど、パソコン内に保存します。

  2. 次のコマンドを使用して、画像を保存した場所から、上の手順で作成したバケットにコピーします。

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

    成功した場合、次の内容が返されます。

    Uploaded kitten.png

    これで、オブジェクトをバケットに保存できました。

バケットからのオブジェクトのダウンロード

  1. 次のコマンドを使用して、バケットに保存した画像をパソコンのデスクトップなどの場所にダウンロードします。

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

    成功した場合、次の内容が返されます。

    Downloaded kitten.png

    これで、バケットからオブジェクトをダウンロードできました。

バケットへのオブジェクトのコピー

  1. 次のコマンドを使用して、バケット内に画像のコピーを作成します。

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

    成功した場合、次の内容が返されます。

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

    これで、バケットにオブジェクトをコピーしました。

バケットの内容の一覧表示

  1. バケットの内容を表示するには、次のコマンドを使用します。

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

    成功した場合、次の内容が返されます。

    kitten.png
    kitten3.png
    

    これで、バケットの内容を表示できました。

バケットへのアクセス権の付与

  1. 特定のメールアドレスに権限を付与し、バケット内のオブジェクトを制御するには、次のコマンドを使用します。

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

    成功した場合、次の内容が返されます。

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

    ユーザーがバケット内にデータを格納したり、バケットに保存されているデータを確認したりできるようになりました。

  2. この権限を削除するには、次のコマンドを使用します。

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

    成功した場合、次の内容が返されます。

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

    このバケットへのユーザーのアクセス権を削除しました。

オブジェクトの削除

  1. オブジェクトを削除するには、次のコマンドを使用します。

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

    成功した場合、次の内容が返されます。

    Deleted kitten.png

    オブジェクトのコピーは Cloud Storage に保存されなくなりました(ただし、kitten3.png という名前のコピーはまだ存在します)。

クリーンアップ

このチュートリアルで使用したリソースについて GCP アカウントに課金されないようにする手順は次のとおりです。

  1. バケットから kitten3.png を削除するには、次のコマンドを使用します。

    bundle exec ruby files.rb delete my-awesome-bucket kitten3.png
  2. バケットを削除するには、次のコマンドを使用します。

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

    コマンドが正常終了した場合は、次のようなメッセージが返されます。

    Deleted bucket: my-awesome-bucket

    バケットとその内容が削除されました。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。