[英]Unable to write files in a GCP buket using Fuse
我使用以下命令在 VM 上安裝了一個存儲桶:
gcsfuse my-bucket /path/to/mount
在此之后,我可以使用 Pandas 從 Python 中的存儲桶中讀取文件,但我無法寫入文件也無法創建新文件夾。 我曾嘗試使用 Python 並從終端使用 sudo 但得到相同的錯誤。
我也嘗試過使用存儲桶中的 key_file:
sudo mount -t gcsfuse -o implicit_dirs,allow_other,uid=1000,gid=1000,key_file=Notebooks/xxxxxxxxxxxxxx10b3464a1aa9.json <BUCKET> <PATH>
當我運行代碼時它不會出現錯誤,但我仍然無法在桶中寫入。
我也試過:
gcloud auth login
但仍然有同樣的問題。
不久前我遇到了同樣的事情,這真的很混亂。 您必須為虛擬機設置正確的訪問 scope,以便任何使用 VM 的人都能夠調用存儲 API。 文檔顯示 VM 上存儲的默認訪問 scope 是只讀的:
當您創建新的 Compute Engine 實例時,它會自動配置以下訪問范圍:
- 雲存儲的只讀訪問權限:https://www.googleapis.com/auth/devstorage.read_only
您所要做的就是更改此 scope,以便您還能夠從 VM 寫入存儲桶。 您可以在此處找到不同范圍的概述。 要將新的 scope 應用到您的 VM,您必須先將其關閉。 然后從您的本地機器執行以下命令:
gcloud compute instances set-scopes INSTANCE_NAME \
--scopes=storage-rw \
--zone=ZONE
如果您將 go 設置為 VM 的設置,則可以從門戶執行相同的操作,一直向下滾動,然后選擇“為每個 API 設置訪問權限”。 首次創建 VM 時,您有相同的選項。 以下是您將如何執行此操作的示例:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.