Opzioni della CLI di Cloud Storage FUSE
Il montaggio di un bucket sul file system locale ti consente di accedere ai tuoi dati in Cloud Storage tramite la semantica standard del file system. Questo documento descrive come montare i bucket Cloud Storage sul file system locale utilizzando Cloud Storage FUSE.
Prima di iniziare
Per montare i bucket e accedervi, 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 tua macchina Debian o Ubuntu.
Ottieni i ruoli richiesti per montare un bucket e accedervi
Per montare, accedere ed eseguire operazioni di lettura e scrittura in un bucket, chiedi al proprietario del bucket di concederti il ruolo Storage Object User (roles/storage.objectUser) sul bucket.
Questo ruolo predefinito contiene le autorizzazioni necessarie per leggere da un bucket montato e scrivere in un bucket montato. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
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 di ruoli sui bucket, consulta Imposta e gestisci le policy IAM sui bucket.
Installa Cloud Storage FUSE
Se non l'hai ancora fatto, installa Cloud Storage FUSE sulla tua macchina.
Autentica le richieste di Cloud Storage FUSE
Per autenticare le richieste di Cloud Storage FUSE in 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.
-
Configura gcloud CLI per utilizzare la tua identità federata.
Per ulteriori informazioni, vedi Accedi a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init -
Crea le credenziali di autenticazione locale per il tuo account utente:
gcloud auth application-default login
Se viene restituito un errore di autenticazione, verifica di aver eseguito l'accesso a gcloud CLI con la tua identità federata.
Quando crei una macchina virtuale (VM) di Compute Engine, il suo account di servizio può essere utilizzato anche per autenticare l'accesso a Cloud Storage FUSE.
Monta un bucket
Per montare i bucket sul file system locale, esegui questo comando sulla tua 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 saperne di più sulle opzioni e su come utilizzarle, consulta il Riferimento per l'interfaccia a riga di comando 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 del 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 in modo implicito che ti consentono di accedere alle cartelle che contengono solo oggetti nidificati più in profondità, includi il flag --implicit-dirs nel comando gcsfuse. Per saperne di più sulle directory definite in modo implicito, consulta Semantica delle directory.
Dopo la chiusura di 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 il logging di debug), puoi eseguire il comando gcsfuse 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.
Ad esempio, supponiamo che tu abbia 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 essere invece specificato nell'ambito dell'operazione di elenco.
Montaggio di 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/pointMonta una directory all'interno di un bucket
Per impostazione predefinita, Cloud Storage FUSE monta i bucket nella loro interezza, inclusi tutti i contenuti e le strutture di directory del bucket. Per montare una directory specifica all'interno di un bucket, passa l'opzione --only-dir all'interfaccia a riga di comando gcsfuse o al 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/pointMonta utilizzando il comando Linux mount
L'installazione di Cloud Storage FUSE include un helper compreso dal comando Linux mount, che ti consente di utilizzare il comando mount per montare i bucket.
Se utilizzi Linux, il comando mount deve essere eseguito dalla directory 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 Linux mount, le opzioni gcsfuse possono essere passate come argomento all'opzione -o, 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 assistente che viene installato nel tuo 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 riga seguente 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 al momento dell'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 il bucket automaticamente 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 di eseguire il 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 i trattini bassi (_) anziché i trattini (-).
Ad esempio, implicit_dirs anziché implicit-dirs.
Monta un bucket con cartelle
Puoi montare bucket con più tipi di cartelle.
Monta un bucket con cartelle gestite
Per montare un bucket, incluse le relative cartelle gestite, includi l'opzione --implicit-dirs 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 su una cartella gestita utilizzando Cloud Storage FUSE. Per impostare o gestire le autorizzazioni IAM su una cartella gestita, consulta Utilizza 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, le policy IAM della cartella gestita originale non vengono mantenute nella nuova cartella gestita. Devi impostare nuove policy IAM sulla nuova cartella gestita.
Monta un bucket con cartelle definite in modo implicito
Puoi montare le cartelle definite in modo implicito utilizzando l'opzione --implicit-dirs
gcsfuse nell'interfaccia a riga di comando gcsfuse o il
campo implicit-dirs in un file di configurazione di Cloud Storage FUSE. Le cartelle definite in modo implicito sono cartelle che non vengono create esplicitamente come oggetti in Cloud Storage. L'opzione --implicit-dirs ti consente di visualizzare le cartelle quando monti un bucket.
Ad esempio, per montare un bucket denominato my-bucket nella directory
/path/to/mount/point con cartelle definite in modo implicito, esegui il seguente
comando:
gcsfuse --implicit-dirs my-bucket /path/to/mount/pointMonta un bucket abilitato per lo spazio dei nomi gerarchico 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 è necessario specificare l'opzione --implicit-dirs
gcsfuse o il campo implicit-dirs per visualizzare le cartelle 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/pointControlla 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 che li richiama 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 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 di accedere al
punto di montaggio del bucket.
Smonta 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 attività.
Scopri di più sulla semantica delle directory in Cloud Storage FUSE.