簡體   English   中英

可以添加文件但不能在谷歌雲存儲中設置元數據

[英]Can add file but cannot set metadata in Google Cloud Storage

我可以將文件復制到 Google Cloud Storage:

% gsutil -m cp audio/index.csv gs://passive-english/audio/
If you experience problems with multiprocessing on MacOS, they might be related to https://bugs.python.org/issue33725. You can disable multiprocessing by editing your .boto config or by adding the following flag to your command: `-o "GSUtil:parallel_process_count=1"`. Note that multithreading is still available even if you disable multiprocessing.

Copying file://audio/index.csv [Content-Type=text/csv]...
\ [1/1 files][196.2 KiB/196.2 KiB] 100% Done
Operation completed over 1 objects/196.2 KiB.

但我無法更改它的元數據:

% gsutil setmeta -h "Cache-Control:public, max-age=7200" gs://passive-english/audio/index.csv
Setting metadata on gs://passive-english/audio/index.csv...
AccessDeniedException: 403 Access denied.

我授權使用 json 文件:

% env | grep GOOGL
GOOGLE_APPLICATION_CREDENTIALS=/app-342xxx-2cxxxxxx.json

如何授予訪問權限以便 gsutil 可以更改文件的元數據?

更新 1:

我授予服務帳戶角色 Editor 和Storage Object Admin權限。

更新 2 :我授予服務帳戶角色 Owner 和 Storage Object Admin 權限。 還是沒用

在此處輸入圖像描述

要更新對象的元數據,您需要 IAM 權限storage.objects.update

該權限包含在角色中:

  • `存儲 Object Admin (roles/storage.objectAdmin)
  • `存儲管理(角色/storage.admin)

使用 CLI 添加所需的角色:

gcloud projects add-iam-policy-binding ${GCP_PROJECT_ID} \
    --member=serviceAccount:${GCP_SERVICE_ACCOUNT_EMAIL}
    --role=REPLACE_WITH_REQUIRED_ROLE (e.g. roles/storage.objectAdmin)

使用谷歌雲控制台 GUI:

  • 在 Cloud Console 中,go 到 IAM & Admin -> IAM 頁面。
  • 找到服務帳戶。
  • 單擊右側的鉛筆圖標。
  • 單擊添加角色。
  • Select 所需角色之一。

我嘗試更新元數據,我可以成功編輯而不會出錯。

根據文檔,您需要在 object 上具有Owner角色才能編輯元數據。

你也可以參考這個文件1 & 2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM