Memasang bucket Cloud Storage dengan menggunakan Cloud Storage FUSE

Opsi pemasangan

Halaman ini menjelaskan beberapa cara untuk memasang bucket Cloud Storage ke sistem file lokal Anda menggunakan Cloud Storage FUSE.

Sebelum memulai

Untuk memasang dan mengakses bucket, Anda harus menyelesaikan tugas berikut terlebih dahulu.

Mendapatkan peran yang diperlukan untuk memasang dan mengakses bucket

Untuk memasang, mengakses, dan melakukan operasi baca dan tulis di bucket, minta pemilik bucket untuk memberi Anda peran Storage Object User (roles/storage.objectUser) di bucket.

Peran bawaan ini berisi izin yang diperlukan untuk membaca dari bucket yang terpasang dan menulis ke bucket yang terpasang. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:

Izin yang diperlukan

  • storage.objects.create
  • storage.objects.delete
  • storage.objects.get
  • storage.objects.list
  • storage.objects.update

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran standar lainnya.

Untuk petunjuk cara memberikan peran pada bucket, lihat Menggunakan IAM dengan bucket.

Menginstal Cloud Storage FUSE

Jika Anda belum melakukannya, instal Cloud Storage FUSE.

Melakukan Autentikasi permintaan Cloud Storage FUSE

Untuk mengautentikasi permintaan Cloud Storage FUSE ke Cloud Storage, Anda harus menyiapkan Kredensial Default Aplikasi. Secara default, Cloud Storage FUSE otomatis memuat Kredensial Default Aplikasi yang ada tanpa konfigurasi lebih lanjut.

Agar dapat menggunakan Google Cloud CLI untuk menyiapkan Kredensial Default Aplikasi, selesaikan langkah-langkah berikut:

  1. Install the Google Cloud CLI.
  2. To initialize the gcloud CLI, run the following command:

    gcloud init
  3. If you're using a local shell, then create local authentication credentials for your user account:

    gcloud auth application-default login

    You don't need to do this if you're using Cloud Shell.

Saat Anda membuat mesin virtual (VM) Compute Engine, akun layanannya juga dapat digunakan untuk mengautentikasi akses ke Cloud Storage FUSE.

Memasang bucket

Untuk memasang bucket ke sistem file lokal, gunakan perintah berikut:

gcsfuse GLOBAL_OPTIONS BUCKET_NAME MOUNT_POINT

Dengan keterangan:

  • GLOBAL_OPTIONS adalah opsi yang dapat Anda sertakan untuk mengontrol cara pemasangan dudukan. Untuk mengetahui informasi selengkapnya tentang opsi dan cara menggunakannya, lihat Opsi Cloud Storage FUSE CLI.

  • BUCKET_NAME adalah nama bucket yang ingin Anda pasang. Misalnya, my-bucket. Jika ingin menjalankan pemasangan dinamis, kecualikan nama bucket dari perintah.

  • MOUNT_POINT adalah direktori lokal tempat bucket dipasang. Contoh, /path/to/mount/point.

Setelah Cloud Storage FUSE keluar, Anda dapat mengakses bucket yang telah terpasang dengan menjalankan ls pada direktori pemasangan bucket. Jika ingin Cloud Storage FUSE tetap berada di latar depan (misalnya, untuk logging debug), Anda dapat menjalankan perintah gcsfuse dengan flag --foreground.

Contoh pemasangan

Bagian ini menjelaskan berbagai contoh perintah untuk memasang bucket.

Pemasangan statis

Pemasangan statis mengacu pada pemasangan bucket tertentu. Misalnya, untuk memasang bucket bernama my-bucket ke direktori /path/to/mount/point, jalankan perintah berikut:

mkdir /path/to/mount/point
gcsfuse my-bucket /path/to/mount/point

Pemasangan dinamis

Pemasangan dinamis mengacu pada pemasangan semua bucket yang dapat diakses pengguna sebagai subdirektori.

Saat menjalankan pemasangan dinamis, Anda mengecualikan nama bucket dari perintah. Misalnya, Anda memiliki akses ke bucket bernama my-bucket-1, my-bucket-2, dan my-bucket-3. Untuk memasang semua bucket ke direktori /path/to/mount/point, jalankan perintah berikut:

mkdir /path/to/mount/point
gcsfuse /path/to/mount/point

Selanjutnya, Anda dapat mengakses bucket sebagai subdirektori:

ls /path/to/mount/point/my-bucket-1/
ls /path/to/mount/point/my-bucket-2/
ls /path/to/mount/point/my-bucket-3/

Bucket yang dipasang secara dinamis tidak dapat dicantumkan dari direktori pemasangan root. Sebagai gantinya, nama bucket harus ditentukan sebagai bagian dari operasi daftar.

Memasang bucket sebagai hanya-baca

Untuk memasang bucket sebagai hanya baca, teruskan opsi -o ro ke perintah gcsfuse Anda. Misalnya, untuk memasang bucket bernama my-bucket sebagai hanya baca ke direktori /path/to/mount/point, jalankan perintah berikut:

gcsfuse -o ro my-bucket  /path/to/mount/point

Memasang direktori dalam bucket

Secara default, Cloud Storage FUSE memasang bucket secara keseluruhan, yang mencakup semua konten bucket dan struktur direktori. Untuk memasang direktori tertentu dalam bucket, teruskan opsi --only-dir ke perintah gcsfuse Anda. Misalnya, untuk memasang direktori my-bucket/a/b ke direktori /path/to/mount/point, jalankan perintah berikut:

gcsfuse --only-dir a/b my-bucket /path/to/mount/point

Memasang dengan menggunakan perintah mount Linux

Penginstalan Cloud Storage FUSE menyertakan bantuan yang dipahami oleh perintah mount di Linux, yang memungkinkan Anda menggunakan perintah mount untuk memasang bucket. Perintah mount harus dijalankan dari root jika Anda menggunakan Linux. Misalnya, perintah berikut memasang bucket bernama my-bucket ke jalur /path/to/mount/point:

sudo mount -t gcsfuse -o rw,user my-bucket /path/to/mount/point

Saat memasang menggunakan perintah mount Linux, opsi CLI Cloud Storage FUSE dapat diteruskan sebagai argumen ke flag -o, tetapi tanda hubung (-) di dalamnya harus diganti dengan garis bawah (_). Misalnya, implicit_dirs, bukan implicit-dirs.

sudo mount -t gcsfuse -o implicit_dirs my-bucket /path/to/mount/point

Pemasangan persisten

Penginstalan Cloud Storage FUSE menyertakan bantuan yang diinstal ke sistem Anda di jalur /sbin/mount.gcsfuse. Bantuan ini memungkinkan Anda membuat direktori pemasangan menggunakan file /etc/fstab, sehingga Anda dapat mempertahankan pemasangan.

Misalnya, saat ditambahkan ke file /etc/fstab, baris berikut menentukan direktori pemasangan untuk bucket bernama my-bucket di jalur /mount/point:

my-bucket /mount/point gcsfuse rw,noauto,user

Dengan keterangan:

  • Opsi rw menentukan bahwa direktori pemasangan dibuat dengan izin baca dan tulis.

  • Opsi noauto menentukan bahwa sistem file tidak boleh dipasang saat booting.

  • Opsi user memungkinkan siapa saja membuat direktori pemasangan yang ditentukan dalam file /etc/fstab. Setelah baris contoh ditambahkan ke file /etc/fstab, Anda dapat menjalankan mount /mount/point sebagai pengguna non-root.

Jika ingin memasang bucket secara otomatis saat booting, Anda mungkin perlu menyertakan opsi x-systemd.requires=network-online.target atau opsi _netdev dalam entri /etc/fstab, untuk memastikan bahwa Cloud Storage FUSE menunggu agar sistem jaringan siap sebelum dipasang. Contoh:

my-bucket /mount/point gcsfuse rw,x-systemd.requires=network-online.target,user

Anda dapat memasang bucket secara otomatis sebagai pengguna non-root tertentu dengan menyertakan opsi uid, gid, atau keduanya dalam entri /etc/fstab. Contoh:

my-bucket /mount/point gcsfuse rw,_netdev,allow_other,uid=1001,gid=1001

Serupa dengan perintah mount linux, flag yang digunakan untuk pemasangan dalam file /etc/fstab harus menggunakan garis bawah (_), bukan tanda hubung (-). Misalnya, implicit_dirs, bukan implicit-dirs.

Memasang bucket dengan folder

Anda dapat memasang bucket dengan beberapa jenis folder.

Memasang bucket dengan folder terkelola

Untuk memasang bucket beserta folder terkelola-nya, sertakan opsi --implicit-dirs dalam perintah Anda.

Misalnya, untuk memasang bucket bernama my-bucket dan folder terkelolanya ke direktori /path/to/mount/point, jalankan perintah berikut:

gcsfuse --implicit-dirs my-bucket /path/to/mount/point

Saat memasang bucket dengan folder terkelola, perhatikan batasan dan pertimbangan berikut:

  • Folder terkelola kosong tidak muncul di bucket yang terpasang.

  • Anda tidak dapat menetapkan atau mengelola izin IAM di folder terkelola menggunakan Cloud Storage FUSE. Untuk menetapkan atau mengelola izin IAM di folder terkelola, lihat Menggunakan IAM dengan folder terkelola.

  • Anda dapat menyalin dan memindahkan folder terkelola di bucket yang terpasang menggunakan perintah cp dan mv. Saat Anda menyalin atau memindahkan folder terkelola, kebijakan IAM di folder terkelola asli tidak akan disimpan ke folder terkelola baru. Anda harus menetapkan kebijakan IAM baru di folder terkelola baru.

Memasang bucket dengan folder yang ditentukan secara implisit

Anda dapat memasang folder yang ditentukan secara implisit menggunakan flag --implicit-dirs dalam perintah Cloud Storage FUSE. Folder yang ditentukan secara implisit adalah folder yang tidak dibuat secara eksplisit sebagai objek di Cloud Storage. Flag --implicit-dirs memungkinkan Anda melihat folder saat memasang bucket.

Misalnya, untuk memasang bucket bernama my-bucket ke direktori /path/to/mount/point dengan folder yang ditentukan secara implisit, jalankan perintah berikut:

gcsfuse --implicit-dirs my-bucket /path/to/mount/point

Memasang bucket yang mendukung namespace hierarkis dengan folder

Anda dapat memasang bucket dengan namespace hierarkis yang diaktifkan, termasuk folder-nya. Saat memasang bucket dengan namespace hierarkis, Anda tidak perlu menentukan tanda --implicit-dirs agar folder muncul di bucket yang dipasang.

Misalnya, untuk memasang bucket bernama my-bucket dengan folder ke direktori /path/to/mount/point, jalankan perintah berikut:

gcsfuse my-bucket /path/to/mount/point

Mengontrol izin akses ke direktori pemasangan

Secara default, Cloud Storage FUSE membuat direktori pemasangan bucket dengan izin yang hanya memungkinkan pengguna yang memanggil untuk mengakses konten bucket yang terpasang. Ini adalah langkah keamanan yang diimplementasikan dalam kernel FUSE.

Untuk memasang bucket dan mengizinkan orang lain mengakses direktori pemasangan bucket, Anda dapat menjalankan perintah mount sebagai root dengan opsi -o allow_other:

mount -t gcsfuse -o allow_other my-bucket /path/to/mount/point

Jika ingin menghindari pemasangan bucket sebagai root, Anda harus menambahkan user_allow_other ke file /etc/fuse.conf agar orang lain dapat mengakses direktori pemasangan bucket.

Melepas bucket

Untuk melepaskan bucket, gunakan alat fusermount:

fusermount -u /path/to/mount/point

Langkah selanjutnya