簡體   English   中英

無法使用 Fuse 在 GCP buket 中寫入文件

[英]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.

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