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

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

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

始める前に

  1. Install the Google Cloud CLI.

  2. フェデレーション ID を使用するように gcloud CLI を構成します。

    詳細については、フェデレーション ID を使用して gcloud CLI にログインするをご覧ください。

  3. gcloud CLI を初期化するには、次のコマンドを実行します。

    gcloud init
  4. Create or select a Trusted Cloud project.

    • Create a Trusted Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Trusted Cloud project you are creating.

    • Select the Trusted Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Trusted Cloud project name.

  5. Verify that billing is enabled for your Trusted Cloud project.

  6. Grant roles to your user account. Run the following command once for each of the following IAM roles: roles/storage.admin

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    Replace the following:

  7. バケットの作成

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

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

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

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

      これは、「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:example-service-account@example-project.s3ns-system.iam.gserviceaccount.com --role=roles/storage.objectCreator

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

      bindings:
        - members:
          - user:example-service-account@example-project.s3ns-system.iam.gserviceaccount.com
          role: roles/storage.objectCreator
      

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

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

      gcloud storage buckets remove-iam-policy-binding gs://my-awesome-bucket --member=user:example-service-account@example-project.s3ns-system.iam.gserviceaccount.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/ に作成したコピーはまだ存在します)。

    クリーンアップ

    このページで使用したリソースについて、 Trusted Cloud アカウントに課金されないようにするには、リソースを含む Trusted 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/...

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

    次のステップ