使用 Google Cloud CLI 探索物件儲存庫

Cloud Storage 可讓您大規模儲存及擷取非結構化資料。在本快速入門導覽課程中,您將使用 Google Cloud CLI 建立 bucket、上傳物件,以及執行其他基本工作,例如共用物件。

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/...

    如果所選 bucket 名稱已有人使用 (無論是您或其他人),指令就會傳回 ServiceException: 409 Bucket my-awesome-bucket already exists. 這樣的訊息。請改用其他 bucket 名稱再試一次。

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

將物件上傳到值區

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

    腳掌向外伸出的小貓。

  2. 使用 gcloud storage cp 指令,將圖片從儲存位置複製到您建立的 bucket:

    gcloud storage cp OBJECT_LOCATION gs://BUCKET_NAME

    將 OBJECT_LOCATION 替換為圖片儲存位置,例如 Desktop/kitten.png。

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

    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 指令,將儲存在 bucket 中的圖片下載到電腦上的某個位置,例如桌面:

    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. 使用 gcloud storage ls 指令搭配 --long 旗標,取得圖片的一些詳細資料:

    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 指令,授予所有使用者讀取 bucket 中圖片的權限:

    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 指令,授予特定電子郵件地址在 bucket 中新增物件的權限:

    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
    

    現在,這位使用者可以將項目新增至您的 bucket。

  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 旗標,刪除 bucket 及其內容:

    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

    您刪除了值區和其內容。

後續步驟