Permissions
對如何操作 GCS 儲存桶/對象權限感到困惑
在我的筆記型電腦上,我有一個目錄,其中包含一個子目錄,該子目錄又包含一堆 HTML 文件。它看起來像這樣:
% ls -lR 2000-09 2000-09: total 12 drwxrwxr-x 2 skip skip 12288 Nov 18 07:42 html 2000-09/html: total 648 -rw-r--r-- 1 skip skip 18489 Dec 4 2019 index.html -rw-r--r-- 1 skip skip 18489 Dec 4 2019 maillist.html -rw-r--r-- 1 skip skip 3468 Dec 4 2019 msg00000.html -rw-r--r-- 1 skip skip 3270 Dec 4 2019 msg00001.html -rw-r--r-- 1 skip skip 3194 Dec 4 2019 msg00002.html ...
我使用 gsutil 將該目錄上傳到我的儲存桶:
% gsutil -m cp -r 2000-09 gs://my-secret-bucket/ Copying file://2000-09/html/msg00070.html [Content-Type=text/html]... Copying file://2000-09/html/msg00060.html [Content-Type=text/html]... Copying file://2000-09/html/msg00029.html [Content-Type=text/html]... Copying file://2000-09/html/msg00052.html [Content-Type=text/html]... ...
通過控制台看起來不錯。我看到
2000-09
了,在那html
裡面,在那一堆文件裡面。到現在為止還挺好。現在我打開一個雲外殼並使用以下方法安裝該儲存桶
gcsfuse
:gcsfuse my-secret-bucket ~/mnt
但生成的目錄視圖顯示為空:
me@cloudshell:~ (whatever)$ ls -l ~/mnt total 0 me@cloudshell:~ (whatever)$
然後我將幾個文件直接上傳到我的儲存桶中(在頂層)
% gsutil -m cp wrench?.jpg gs://my-secret-bucket/ Copying file://wrench1.jpg [Content-Type=image/jpeg]... Copying file://wrench2.jpg [Content-Type=image/jpeg]... / [2/2 files][ 1.0 MiB/ 1.0 MiB] 100% Done Operation completed over 2 objects/1.0 MiB.
我確認它們在控制台中,然後再次列出我安裝的儲存桶。它們是可見的,我可以閱讀它們:
$ ls -l ~/mnt total 1049 -rw-r--r-- 1 me me 432451 Nov 18 19:09 wrench1.jpg -rw-r--r-- 1 me me 640526 Nov 18 19:09 wrench2.jpg me@cloudshell:~ (whatever) cksum mnt/wrench1.jpg 3659533210 432451 mnt/wrench1.jpg me@cloudshell:~ (whatever)$
似乎文件在頂層可見,但我不知道如何使目錄及其內容可見。對於像我這樣的老 Unix 人來說,Web 界面非常令人困惑,他們希望
rw-r--r--
在查看長列表時看到類似的東西,並chmod 0644 ...
在看起來不正確時執行它。如何使我的 2000-09 對象/文件夾/目錄和(遞歸)其全部內容可見?最終,我希望它對 GCP 託管的 Flask Web 應用程序可見(也歸我所有,因此不一定公開可見)。
根據這個相關執行緒,
gcsfuse
預設情況下可能不會顯示不是直接創建的目錄。我嘗試執行您描述的確切步驟,並且我的目錄從已安裝的文件夾中不可見(頂級文件確實顯示正確)。相同的答案解釋了使用--implicit-dirs
標誌會更改此行為以顯示目錄。我使用該標誌創建了另一個掛載,並且從 Cloud Shell 中可以看到這些文件夾:gcsfuse --implicit-dirs BUCKET_NAME ~/mountedDir
為了將儲存桶掛載到目錄上,我使用了
gcsfuse
文件,其中詳細介紹了掛載過程。查看使用此標誌可能產生的副作用很重要,例如額外的 API 呼叫。