gcloud ツールを使用してオブジェクト ストレージを検出する

このページでは、gcloud コマンドライン ツールを使用して Cloud Storage で基本的なタスクを実行する方法について説明します。

Cloud Storage で発生する費用は、使用するリソースによって異なります。このクイックスタートでは、ほとんどの場合、費用が $0.01 USD 未満の Cloud Storage リソースを使用します。

始める前に

  1. Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. Google Cloud Console のプロジェクト セレクタのページで、[プロジェクトを作成] をクリックして新しい Google Cloud プロジェクトの作成を開始します。

    プロジェクト セレクタに移動

  3. Google Cloud プロジェクトで課金が有効になっていることを確認します

  4. Google Cloud CLI をインストールします。
  5. gcloud CLI を初期化するには:

    gcloud init
  6. Google Cloud Console のプロジェクト セレクタのページで、[プロジェクトを作成] をクリックして新しい Google Cloud プロジェクトの作成を開始します。

    プロジェクト セレクタに移動

  7. Google Cloud プロジェクトで課金が有効になっていることを確認します

  8. Google Cloud CLI をインストールします。
  9. gcloud CLI を初期化するには:

    gcloud init

バケットの作成

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

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

  1. ターミナル ウィンドウを開きます。
  2. gcloud storage buckets create コマンドと一意の名前を使用して、バケットを作成します。

    gcloud storage buckets create gs://my-awesome-bucket/ --uniform-bucket-level-access

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

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

    Creating gs://my-awesome-bucket/...

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

Creating gs://my-awesome-bucket/...
ServiceException: 409 Bucket my-awesome-bucket already exists.

異なるバケット名でもう一度お試しください。

バケットにオブジェクトをアップロードする

バケットにアップロードする子猫の画像。

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

  2. gcloud storage cp コマンドを使用して、画像を保存した場所から作成したバケットにコピーします。

    gcloud storage cp Desktop/kitten.png gs://my-awesome-bucket

    問題なければ、次の内容が返されます。

    Copying file://Desktop/kitten.png [Content-Type=image/png]...
    Uploading   gs://my-awesome-bucket/kitten.png:       0 B/164.3 KiB
    Uploading   gs://my-awesome-bucket/kitten.png:       164.3 KiB/164.3 KiB

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

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

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

    gcloud storage cp gs://my-awesome-bucket/kitten.png Desktop/kitten2.png

    問題なければ、次の内容が返されます。

    Copying gs://my-awesome-bucket/kitten.png...
    Downloading file://Desktop/kitten2.png:               0 B/164.3 KiB
    Downloading file://Desktop/kitten2.png:               164.3 KiB/164.3 KiB

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

バケット内のフォルダへのオブジェクトのコピー

  1. gcloud storage cp コマンドを使用してフォルダを作成し、画像をそこにコピーします。

    gcloud storage cp gs://my-awesome-bucket/kitten.png gs://my-awesome-bucket/just-a-folder/kitten3.png

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

    Copying gs://my-awesome-bucket/kitten.png [Content-Type=image/png]...
    Copying     ...my-awesome-bucket/just-a-folder/kitten3.png: 164.3 KiB/164.3 KiB

    これで、バケット内の新しいフォルダに画像がコピーされました。

バケットまたはフォルダの内容を一覧表示する

  1. gcloud storage ls コマンドを使用して、トップレベルのバケットの内容を一覧表示します。

    gcloud storage ls gs://my-awesome-bucket

    問題なければ、次のようなメッセージが返されます。

    gs://my-awesome-bucket/kitten.png
    gs://my-awesome-bucket/just-a-folder/

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

オブジェクトの詳細を表示する

  1. gcloud storage ls コマンドに --long フラグを指定して、画像の 1 つに関するいくつかの詳細を取得します。

    gcloud storage ls gs://my-awesome-bucket/kitten.png --long

    問題なければ、次のようなメッセージが返されます。

    2638  2016-02-26T23:05:14Z  gs://my-awesome-bucket/kitten.png
    TOTAL: 1 objects, 168243.2 bytes (164.3 KiB)

    これで、画像のサイズと作成日に関する情報が取得されました。

オブジェクトを一般公開にする

  1. gcloud storage buckets add-iam-policy-binding コマンドを使用して、バケットに保存されているイメージの読み取り権限をすべてのユーザーに付与します。

    gcloud storage buckets add-iam-policy-binding gs://my-awesome-bucket --member=allUsers --role=roles/storage.objectViewer

    レスポンスに次のものが含まれている場合、コマンドは成功です。

    bindings:
      - members:
        - allUsers
        role: roles/storage.objectViewer
    

    これで、誰でも画像を取得できるようになりました。

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

    gcloud storage buckets remove-iam-policy-binding gs://my-awesome-bucket --member=allUsers --role=roles/storage.objectViewer

    エラーが返されなければ、コマンドは成功です。

    バケット内の画像への公開アクセス権が削除されました。

バケットにアクセス権を付与する

  1. gcloud storage buckets add-iam-policy-binding コマンドを使用して、特定のメールアドレスにバケットへのオブジェクトを追加する権限を付与します。

    gcloud storage buckets add-iam-policy-binding gs://my-awesome-bucket --member=user:jane@gmail.com --role=roles/storage.objectCreator

    レスポンスに次のものが含まれている場合、コマンドは成功です。

    bindings:
      - members:
        - user:jane@gmail.com
        role: roles/storage.objectCreator
    

    これで、他のユーザーがバケットにアイテムを追加できるようになりました。

  2. 上で付与した閲覧権限を削除するには、次のコマンドを使用します。

    gcloud storage buckets remove-iam-policy-binding gs://my-awesome-bucket --member=user:jane@gmail.com --role=roles/storage.objectCreator

    エラーが返されなければ、コマンドは成功です。

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

オブジェクトを削除する

  1. 画像のいずれかを削除するには、gcloud storage rm コマンドを使用します。

    gcloud storage rm gs://my-awesome-bucket/kitten.png

    問題なければ、次の内容が返されます。

    Removing gs://my-awesome-bucket/kitten.png...

    画像のコピーは Cloud Storage に保存されなくなりました(ただし、フォルダ just-a-folder/ に作成したコピーはまだ存在します)。

クリーンアップ

このページで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の操作を行います。

  1. ターミナル ウィンドウを開きます(まだ開いていない場合)。
  2. gcloud storage rm コマンドで --recursive フラグを指定して、バケットとその中のすべてのものを削除します。

    gcloud storage rm gs://my-awesome-bucket --recursive

    問題なければ、次のようなメッセージが返されます。

    Removing gs://my-awesome-bucket/just-a-folder/cloud-storage.logo.png#1456530077282000...
    Removing gs://my-awesome-bucket/...

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

次のステップ