使用 Google Cloud CLI 探索物件儲存空間

本頁面說明如何使用 Google Cloud CLI 在 Cloud Storage 中執行基本工作。

Cloud Storage 產生的費用取決於您耗用的資源。這項快速入門導覽課程使用的 Cloud Storage 資源通常不到 $0.01 美元。

事前準備

  1. 登入 Google Cloud 帳戶。如果您是 Google Cloud新手,歡迎 建立帳戶,親自評估產品在實際工作環境中的成效。新客戶還能獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。
  2. 安裝 Google Cloud CLI。

  3. 若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI

  4. 執行下列指令,初始化 gcloud CLI:

    gcloud init
  5. 建立或選取 Google Cloud 專案

    選取或建立專案所需的角色

    • 選取專案:選取專案時,不需要具備特定 IAM 角色,只要您已獲授角色,即可選取任何專案。
    • 建立專案:如要建立專案,您需要具備專案建立者角色 (roles/resourcemanager.projectCreator),其中包含 resourcemanager.projects.create 權限。瞭解如何授予角色
    • 建立 Google Cloud 專案:

      gcloud projects create PROJECT_ID

      PROJECT_ID 替換為您要建立的 Google Cloud 專案名稱。

    • 選取您建立的 Google Cloud 專案:

      gcloud config set project PROJECT_ID

      PROJECT_ID 替換為 Google Cloud 專案名稱。

  6. 確認專案已啟用計費功能 Google Cloud

  7. 將角色授予使用者帳戶。針對下列每個 IAM 角色,執行一次下列指令: roles/storage.admin

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

    更改下列內容:

    • PROJECT_ID:專案 ID。
    • USER_IDENTIFIER:使用者帳戶的 ID。 例如:myemail@example.com
    • ROLE:授予使用者帳戶的 IAM 角色。
  8. 安裝 Google Cloud CLI。

  9. 若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI

  10. 執行下列指令,初始化 gcloud CLI:

    gcloud init
  11. 建立或選取 Google Cloud 專案

    選取或建立專案所需的角色

    • 選取專案:選取專案時,不需要具備特定 IAM 角色,只要您已獲授角色,即可選取任何專案。
    • 建立專案:如要建立專案,您需要具備專案建立者角色 (roles/resourcemanager.projectCreator),其中包含 resourcemanager.projects.create 權限。瞭解如何授予角色
    • 建立 Google Cloud 專案:

      gcloud projects create PROJECT_ID

      PROJECT_ID 替換為您要建立的 Google Cloud 專案名稱。

    • 選取您建立的 Google Cloud 專案:

      gcloud config set project PROJECT_ID

      PROJECT_ID 替換為 Google Cloud 專案名稱。

  12. 確認專案已啟用計費功能 Google Cloud

  13. 將角色授予使用者帳戶。針對下列每個 IAM 角色,執行一次下列指令: roles/storage.admin

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

    更改下列內容:

    • PROJECT_ID:專案 ID。
    • USER_IDENTIFIER:使用者帳戶的 ID。 例如:myemail@example.com
    • ROLE:授予使用者帳戶的 IAM 角色。

建立值區

「bucket」是 Cloud Storage 中存放資料的基本容器。

如何建立值區:

  1. 開啟終端機視窗。
  2. 使用 gcloud storage buckets create 指令和全域不重複的名稱來建立 bucket:

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

    BUCKET_NAME 替換為 bucket 的名稱。

    如果成功,指令會傳回類似下方的回應:

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

    如果所選值區名稱已有人使用 (無論是您或其他人),指令就會傳回類似 ServiceException: 409 Bucket my-awesome-bucket already exists. Try again with a different bucket name 的回應。

您已經建立值區,可以開始儲存您的資料!

將物件上傳到值區

  1. 將下列圖片儲存至電腦,例如桌面。

    腳掌向外伸出的小貓。

  2. 使用 gcloud storage cp 指令將位於儲存位置的圖片複製到您建立的值區中:

    gcloud storage cp Desktop/kitten.png gs://BUCKET_NAME

    如果成功,指令會傳回類似下方的回應:

    Copying file://Desktop/kitten.png to gs://my-awesome-bucket/kitten.png
      Completed files 1/1 | 8.6kiB/8.6kiB

    您剛剛在值區中儲存了一個物件。

從 bucket 下載物件

  1. 使用 gcloud storage cp 指令將儲存在值區中的圖片下載至電腦任意位置 (例如桌面):

    gcloud storage cp gs://BUCKET_NAME/kitten.png Desktop/kitten2.png

    如果成功,指令會傳回類似下方的回應:

    Copying gs://my-awesome-bucket/kitten.png to file://Desktop/kitten2.png
      Completed files 1/1 | 8.6kiB/8.6kiB 

    您剛剛下載了值區中的物件。

將物件複製到 bucket 中的模擬資料夾

  1. 使用 gcloud storage cp 指令建立模擬資料夾,並將圖片複製到其中:

    gcloud storage cp gs://BUCKET_NAME/kitten.png gs://BUCKET_NAME/quickstart-folder/kitten3.png

    如果成功,指令會傳回類似下方的回應:

    Copying gs://my-awesome-bucket/kitten.png to gs://my-awesome-bucket/quickstart-folder/kitten3.png
      Completed files 1/1 | 8.6kiB/8.6kiB 

    您剛剛已將圖片複製到 bucket 中的新模擬資料夾。

列出值區的內容

  1. 使用 gcloud storage ls 指令列出值區頂層的內容:

    gcloud storage ls gs://BUCKET_NAME

    如果成功,指令會傳回類似下方的回應:

    gs://my-awesome-bucket/kitten.png
    gs://my-awesome-bucket/quickstart-folder/

    您剛剛看到了值區頂層的內容。

列出物件的詳細資料

  1. 使用帶有 --long 旗標的 gcloud storage ls 指令,取得圖片的一些詳細資料:

    gcloud storage ls gs://BUCKET_NAME/kitten.png --long

    如果成功,指令會傳回類似下方的回應:

    8775  2026-01-21T01:22:17Z  gs://srs-bucketcli/kitten.png
    TOTAL: 1 objects, 8775 bytes (8.57kiB)

    您剛剛取得了圖片大小和建立日期的相關資訊。

將物件設為可公開存取

  1. 使用 gcloud storage buckets add-iam-policy-binding 指令授予權限,讓所有使用者都能讀取值區圖片:

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

    如果回應包含下列內容,表示指令執行成功:

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

    現在任何人都能取得您的圖片。

  2. 如要移除這個存取權,請使用下列指令:

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

    如果系統未傳回錯誤,即代表指令執行成功。

    您已移除值區中圖片的公開存取權。

向使用者提供值區的存取權

  1. 使用 gcloud storage buckets add-iam-policy-binding 指令授予特定電子郵件地址在值區中新增物件的權限:

    gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member=user:jeffersonloveshiking@gmail.com --role=roles/storage.objectCreator

    如果回應包含下列內容,表示指令執行成功:

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

    現在這位使用者可以將項目加入值區。

  2. 如要移除這項權限,請使用下列指令:

    gcloud storage buckets remove-iam-policy-binding gs://BUCKET_NAME --member=user:jeffersonloveshiking@gmail.com --role=roles/storage.objectCreator

    如果系統未傳回錯誤,即代表指令執行成功。

    您剛剛移除了使用者對這個值區的存取權。

刪除物件

  1. 使用 gcloud storage rm 指令刪除其中一張圖片:

    gcloud storage rm gs://BUCKET_NAME/kitten.png

    如果成功,指令會傳回類似下方的回應:

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

    Cloud Storage 中已不存在這個圖片副本 (雖然您在模擬資料夾 quickstart-folder/ 中產生的副本仍然存在)。

清除所用資源

為了避免系統向您的 Google Cloud 帳戶收取本頁面所用資源的費用,請刪除含有這些資源的 Google Cloud 專案。

  1. 使用 gcloud storage rm 指令並加上 --recursive 標記,刪除值區及其中的內容:

    gcloud storage rm gs://BUCKET_NAME --recursive

    如果成功,指令會傳回類似下方的回應:

    Removing objects:
    Removing gs://my-awesome-bucket/quickstart-folder/kitten3.png#1768960201129254
      Completed 1/1
    Removing buckets:
    Removing gs://my-awesome-bucket/...
      Completed 1/1

    您刪除了值區和其內容。

後續步驟