Opzioni della CLI di Cloud Storage FUSE
Il montaggio di un bucket nel file system locale fornisce l'accesso ai dati in Cloud Storage tramite la semantica standard del file system. Questo documento descrive come montare i bucket Cloud Storage nel file system locale utilizzando Cloud Storage FUSE.
Prima di iniziare
Per montare e accedere ai bucket, devi prima completare le seguenti attività. Non puoi utilizzare Cloud Shell per montare i bucket Cloud Storage. Esegui invece i comandi forniti in questo documento nel terminale della macchina Debian o Ubuntu.
Ottenere i ruoli richiesti per montare e accedere a un bucket
Per montare, accedere ed eseguire operazioni di lettura e scrittura in un bucket, chiedi al proprietario del bucket di concederti il ruolo Utente oggetti Storage (roles/storage.objectUser) nel bucket.
Questo ruolo predefinito contiene le autorizzazioni necessarie per leggere da un bucket montato e scrivere in un bucket montato. Per visualizzare le autorizzazioni esatte richieste, espandi la sezione Autorizzazioni richieste:
Autorizzazioni obbligatorie
storage.objects.createstorage.objects.deletestorage.objects.getstorage.objects.liststorage.objects.update
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Per istruzioni sulla concessione dei ruoli nei bucket, consulta Impostare e gestire i criteri IAM nei bucket.
Installare Cloud Storage FUSE
Se non l'hai già fatto, installa Cloud Storage FUSE sulla tua macchina.
Autenticare le richieste di Cloud Storage FUSE
Per autenticare le richieste di Cloud Storage FUSE a Cloud Storage, devi configurare le Credenziali predefinite dell'applicazione. Per impostazione predefinita, Cloud Storage FUSE carica automaticamente le Credenziali predefinite dell'applicazione esistenti senza ulteriori configurazioni.
Per utilizzare Google Cloud CLI per configurare le Credenziali predefinite dell'applicazione, completa i seguenti passaggi:
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init -
Se utilizzi una shell locale, crea le credenziali di autenticazione locali per il tuo account utente:
gcloud auth application-default login
Non devi eseguire questa operazione se utilizzi Cloud Shell.
Se viene restituito un errore di autenticazione e utilizzi un provider di identità (IdP) esterno, verifica di aver acceduto a gcloud CLI con la tua identità federata.
Quando crei una macchina virtuale (VM) Compute Engine, il relativo account di servizio può essere utilizzato anche per autenticare l'accesso a Cloud Storage FUSE.
Montare un bucket
Per montare i bucket nel file system locale, esegui questo comando sulla macchina locale:
gcsfuse GLOBAL_OPTIONS BUCKET_NAME MOUNT_POINT
Sostituisci quanto segue:
GLOBAL_OPTIONSsono le opzioni che puoi includere per controllare la configurazione del montaggio. Per ulteriori informazioni sulle opzioni e su come utilizzarle, consulta la pagina di riferimento della CLI di Cloud Storage FUSE o le pagine del file di configurazione di Cloud Storage FUSE.BUCKET_NAMEè il nome del bucket che vuoi montare. Ad esempio,my-bucket. Se vuoi eseguire il montaggio dinamico, escludi il nome di un bucket dal comando.MOUNT_POINTè la directory locale in cui viene montato il bucket. Ad esempio,/path/to/mount/point.
(Facoltativo) Per creare directory definite implicitamente che ti consentano di navigare nelle cartelle che contengono solo oggetti nidificati più in profondità, includi il flag --implicit-dirs nel comando gcsfuse. Per saperne di più sulle
directory definite implicitamente, consulta Semantica delle directory.
Dopo l'uscita da Cloud Storage FUSE, puoi accedere ai bucket montati eseguendo ls sul punto di montaggio del bucket. Se preferisci che Cloud Storage FUSE rimanga in
primo piano (ad esempio, per la registrazione di debug), puoi eseguire il gcsfuse comando
con il campo foreground o l'opzione
--foreground.
Esempi di montaggio
Questa sezione descrive diversi comandi di esempio per il montaggio dei bucket.
Montaggio statico
Il montaggio statico si riferisce al montaggio di un bucket specifico. Ad esempio, per montare un bucket denominato my-bucket nella directory /path/to/mount/point, esegui questi comandi:
mkdir /path/to/mount/pointgcsfuse my-bucket /path/to/mount/point
Montaggio dinamico
Il montaggio dinamico si riferisce al montaggio di tutti i bucket a cui un utente ha accesso come sottodirectory.
Quando esegui il montaggio dinamico, escludi i nomi dei bucket dal comando.
Supponiamo, ad esempio, di avere accesso ai bucket denominati my-bucket-1, my-bucket-2 e my-bucket-3. Per montare tutti i bucket nella directory /path/to/mount/point, esegui questi comandi:
mkdir /path/to/mount/pointgcsfuse /path/to/mount/point
Puoi quindi accedere ai bucket come sottodirectory:
ls /path/to/mount/point/my-bucket-1/ls /path/to/mount/point/my-bucket-2/ls /path/to/mount/point/my-bucket-3/
I bucket montati dinamicamente non possono essere elencati dal punto di montaggio principale. Il nome del bucket deve invece essere specificato come parte dell'operazione di elenco.
Montare un bucket in sola lettura
Per montare un bucket in sola lettura, passa l'opzione -o ro al comando gcsfuse. Ad esempio, per montare un bucket denominato my-bucket in sola lettura nella directory /path/to/mount/point, esegui questo comando:
gcsfuse -o ro my-bucket /path/to/mount/pointMontare una directory all'interno di un bucket
Per impostazione predefinita, Cloud Storage FUSE monta i bucket nella loro interezza, incluse tutte le strutture di contenuti e directory del bucket. Per montare una directory specifica all'interno di
un bucket, passa l'opzione --only-dir alla CLI gcsfuse
o il campo only-dir in un file di configurazione di Cloud Storage FUSE. Ad esempio, per montare la directory my-bucket/a/b nella directory /path/to/mount/point, esegui questo comando:
gcsfuse --only-dir a/b my-bucket /path/to/mount/pointMontare utilizzando il comando mount di Linux
L'installazione di Cloud Storage FUSE include un helper compreso dal comando mount di Linux, che ti consente di utilizzare il comando mount per montare i bucket.
Se utilizzi Linux, il comando mount deve essere eseguito da root. Ad esempio, il seguente comando monta un bucket denominato my-bucket nel percorso /path/to/mount/point:
sudo mount -t gcsfuse -o rw,user my-bucket /path/to/mount/pointQuando esegui il montaggio utilizzando il comando mount di Linux,
gcsfuse opzioni possono essere passate come argomento all'
-o opzione, ma i trattini (-) devono essere sostituiti con
trattini bassi (_). Ad esempio, implicit_dirs anziché implicit-dirs.
sudo mount -t gcsfuse -o implicit_dirs my-bucket /path/to/mount/pointMontaggio permanente
L'installazione di Cloud Storage FUSE include un helper installato nel sistema nel percorso /sbin/mount.gcsfuse. Questo helper ti consente di creare punti di montaggio utilizzando il file /etc/fstab, in modo da rendere persistenti i montaggi.
Ad esempio, se aggiunta al file /etc/fstab, la seguente riga definisce un punto di montaggio per un bucket denominato my-bucket nel percorso /mount/point:
my-bucket /mount/point gcsfuse rw,noauto,userDove:
L'opzione
rwspecifica che il punto di montaggio deve essere creato con autorizzazioni di lettura e scrittura.L'opzione
noautospecifica che il file system non deve essere montato all'avvio.L'opzione
userconsente a chiunque di creare il punto di montaggio specificato nel file/etc/fstab. Dopo aver aggiunto la riga di esempio al file/etc/fstab, puoi eseguiremount /mount/pointcome utente non root.
Se vuoi montare automaticamente il bucket all'avvio, potresti dover includere l'opzione _netdev nella voce /etc/fstab per assicurarti che Cloud Storage FUSE attenda che il sistema di rete sia pronto prima del montaggio. Ad esempio:
my-bucket /mount/point gcsfuse rw,_netdev,userPuoi montare automaticamente un bucket come utente non root specifico includendo le opzioni uid, gid o entrambe nella voce /etc/fstab. Ad esempio:
my-bucket /mount/point gcsfuse rw,_netdev,allow_other,uid=1001,gid=1001Analogamente al comando Linux mount, i flag utilizzati per il montaggio nel
file /etc/fstab devono utilizzare trattini bassi (_) anziché trattini (-).
Ad esempio, implicit_dirs anziché implicit-dirs.
Montare un bucket con cartelle
Puoi montare bucket con più tipi di cartelle.
Montare un bucket con cartelle gestite
Per montare un bucket, incluse le relative cartelle gestite, includi l'
--implicit-dirs opzione o il campo implicit-dirs nel
comando.
Ad esempio, per montare un bucket denominato my-bucket e le relative cartelle gestite nella directory /path/to/mount/point, esegui questi comandi:
gcsfuse --implicit-dirs my-bucket /path/to/mount/pointQuando monti un bucket con cartelle gestite, tieni presente le seguenti limitazioni e considerazioni:
Le cartelle gestite vuote non vengono visualizzate nei bucket montati.
Non puoi impostare o gestire le autorizzazioni IAM in una cartella gestita utilizzando Cloud Storage FUSE. Per impostare o gestire le autorizzazioni IAM in una cartella gestita, consulta Utilizzare IAM con le cartelle gestite.
Puoi copiare e spostare una cartella gestita in un bucket montato utilizzando i comandi
cpemv. Quando copi o sposti una cartella gestita, i criteri IAM nella cartella gestita originale non vengono mantenuti nella nuova cartella gestita. Devi impostare nuovi criteri IAM nella nuova cartella gestita.
Montare un bucket con cartelle definite implicitamente
Puoi montare le cartelle definite implicitamente utilizzando l'opzione --implicit-dirs
gcsfuse nella CLI gcsfuse o il
implicit-dirs campo in un file di configurazione di Cloud Storage FUSE. Le cartelle definite implicitamente sono cartelle che non vengono create in modo esplicito come oggetti in Cloud Storage. L'opzione --implicit-dirs ti consente di visualizzare le cartelle durante il montaggio di un bucket.
Ad esempio, per montare un bucket denominato my-bucket nella directory /path/to/mount/point con cartelle definite implicitamente, esegui questo comando:
gcsfuse --implicit-dirs my-bucket /path/to/mount/pointMontare un bucket con spazio dei nomi gerarchico abilitato con cartelle
Puoi montare un bucket con lo spazio dei nomi gerarchico
abilitato, incluse le relative cartelle. Quando monti un bucket con
lo spazio dei nomi gerarchico, non devi specificare l'opzione --implicit-dirs
gcsfuse o il campo implicit-dirs affinché le cartelle vengano visualizzate in
nel bucket montato.
Ad esempio, per montare un bucket denominato my-bucket con cartelle nella directory /path/to/mount/point, esegui questo comando:
gcsfuse my-bucket /path/to/mount/pointControllare le autorizzazioni di accesso al punto di montaggio
Per impostazione predefinita, Cloud Storage FUSE crea punti di montaggio dei bucket con autorizzazioni che consentono solo all'utente chiamante di accedere ai contenuti dei bucket montati. Si tratta di una misura di sicurezza implementata all'interno del kernel FUSE.
Per montare un bucket e consentire ad altri utenti di accedere al punto di montaggio del bucket, puoi eseguire il comando mount come root con l'opzione -o allow_other:
mount -t gcsfuse -o allow_other my-bucket /path/to/mount/pointSe vuoi evitare di montare il bucket come root, devi aggiungere user_allow_other al file /etc/fuse.conf per consentire ad altri utenti di accedere al punto di montaggio del bucket.
Smontare un bucket
Per smontare un bucket, utilizza lo strumento fusermount:
fusermount -u /path/to/mount/pointPassaggi successivi
Scopri le best practice per l'ottimizzazione delle prestazioni di Cloud Storage FUSE, ad esempio come controllare il comportamento della memorizzazione nella cache o registrare l'attività.
Scopri di più sulla semantica delle directory in Cloud Storage FUSE.