บนแล็ปท็อปของฉัน ฉันมีไดเร็กทอรีที่มีไดเร็กทอรีย่อย ซึ่งจะมีไฟล์ 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

แต่มุมมองไดเร็กทอรีผลลัพธ์จะว่างเปล่า:

[email protected]:~ (whatever)$ ls -l ~/mnt
total 0
[email protected]:~ (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
[email protected]:~ (whatever) cksum mnt/wrench1.jpg
3659533210 432451 mnt/wrench1.jpg
[email protected]:~ (whatever)$

ดูเหมือนว่าไฟล์จะมองเห็นได้ที่ระดับบนสุด แต่ฉันไม่รู้วิธีทำให้ไดเร็กทอรีและเนื้อหามองเห็นได้ อินเทอร์เฟซทางเว็บสร้างความสับสนให้กับผู้ใช้ Unix รุ่นเก่าอย่างฉันที่ต้องการดูรายการต่างๆ เช่นrw-r--r--เมื่อดูรายการยาวๆ และดำเนินการchmod 0644 ...เพื่อให้ดูไม่เหมาะสม ฉันจะทำให้วัตถุ/โฟลเดอร์/ไดเร็กทอรี 2000-09 มองเห็นได้อย่างไร (เรียกซ้ำ) เนื้อหาทั้งหมด ท้ายที่สุด ฉันต้องการให้เว็บแอป Flask ที่โฮสต์ GCP มองเห็นได้ (ฉันเป็นเจ้าของด้วย ดังนั้นจึงไม่จำเป็นต้องเปิดเผยต่อสาธารณะ)

answer

ตามนี้หัวข้อที่เกี่ยวข้อง , gcsfuseโดยค่าเริ่มต้นอาจไม่แสดงไดเรกทอรีที่ไม่ได้ถูกสร้างขึ้นโดยตรง ฉันพยายามทำตามขั้นตอนที่คุณอธิบาย แต่ไดเรกทอรีของฉันไม่ปรากฏให้เห็นจากโฟลเดอร์ที่ต่อเชื่อม (ไฟล์ระดับบนสุดแสดงอย่างถูกต้อง) คำตอบเดียวกันนี้อธิบายว่าการใช้--implicit-dirsแฟล็กจะเปลี่ยนพฤติกรรมนี้เพื่อแสดงไดเร็กทอรี ฉันสร้างการเมานต์อื่นด้วยแฟล็ก และโฟลเดอร์ต่างๆ สามารถมองเห็นได้จาก Cloud Shell:

gcsfuse --implicit-dirs BUCKET_NAME ~/mountedDir

สำหรับการติดตั้งที่เก็บข้อมูลบนไดเร็กทอรี ฉันใช้gcsfuse เอกสารประกอบซึ่งมีรายละเอียดเกี่ยวกับขั้นตอนการติดตั้ง เป็นสิ่งสำคัญที่จะต้องตรวจสอบผลข้างเคียงที่อาจเกิดขึ้นจากการใช้แฟล็กนี้ เช่น การเรียก API เพิ่มเติม