Questa pagina descrive diversi modi per 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à.
Ottenere i ruoli richiesti per il montaggio e l'accesso 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 oggetto 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 vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
storage.objects.create
storage.objects.delete
storage.objects.get
storage.objects.list
storage.objects.update
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Per istruzioni sulla concessione dei ruoli sui bucket, consulta Utilizzare IAM con i bucket.
Installa Cloud Storage FUSE
Se non l'hai ancora fatto, installa Cloud Storage FUSE.
Autenticare le richieste Cloud Storage FUSE
Per autenticare le richieste 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:
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
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.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
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, utilizza il comando seguente:
gcsfuse GLOBAL_OPTIONS BUCKET_NAME MOUNT_POINT
Dove:
GLOBAL_OPTIONS
sono le opzioni che puoi includere per controllare la configurazione del supporto. Per maggiori informazioni sulle opzioni e su come utilizzarle, consulta Opzioni della CLI di Cloud Storage FUSE.BUCKET_NAME
è il nome del bucket che vuoi montare. Ad esempio,my-bucket
. Se vuoi eseguire il montaggio dinamico, escludi un nome bucket dal comando.MOUNT_POINT
è la directory locale in cui viene montato il bucket. Ad esempio,/path/to/mount/point
.
Dopo l'uscita 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 la registrazione di debug), puoi eseguire il comando gcsfuse
con il flag --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/point
gcsfuse 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/point
gcsfuse /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 specificato come parte 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
come di sola lettura nella
directory /path/to/mount/point
, esegui questo comando:
gcsfuse -o ro my-bucket /path/to/mount/point
Montare 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
al comando gcsfuse
. 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/point
Montare 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 radice. 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/point
Quando esegui il montaggio utilizzando il comando Linux mount
, le opzioni CLI di Cloud Storage FUSE possono essere trasmesse come argomento al flag -o
, ma i trattini (-
) devono essere sostituiti con i trattini bassi (_
). Ad esempio, implicit_dirs
anziché implicit-dirs
.
sudo mount -t gcsfuse -o implicit_dirs my-bucket /path/to/mount/point
Montaggio permanente
L'installazione di Cloud Storage FUSE include un helper 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 poter 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,user
Dove:
L'opzione
rw
specifica che il punto di montaggio deve essere creato con autorizzazioni di lettura e scrittura.L'opzione
noauto
specifica che il file system non deve essere montato all'avvio.L'opzione
user
consente 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/point
come utente non root.
Se vuoi montare automaticamente il bucket all'avvio, potresti dover includere
l'opzione x-systemd.requires=network-online.target
o 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,x-systemd.requires=network-online.target,user
Puoi 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=1001
Analogamente 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
.
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'opzione
--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/point
Quando 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 Utilizzare IAM con le cartelle gestite.
Puoi copiare e spostare una cartella gestita in un bucket montato utilizzando i comandi
cp
emv
. Quando copi o sposti una cartella gestita, i criteri IAM della cartella gestita originale non vengono mantenuti nella nuova cartella gestita. Devi impostare nuove policy IAM nella nuova cartella gestita.
Montare un bucket con cartelle definite implicitamente
Puoi montare le cartelle definite implicitamente utilizzando l'opzione di configurazione --implicit-dirs
nell'interfaccia a riga di comando di Cloud Storage FUSE. Le cartelle definite implicitamente sono cartelle che non vengono create esplicitamente come oggetti in Cloud Storage. L'opzione di configurazione --implicit-dirs
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 il seguente
comando:
gcsfuse --implicit-dirs my-bucket /path/to/mount/point
Monta un bucket abilitato allo 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
spazio dei nomi gerarchico, non devi specificare l'opzione di configurazione --implicit-dirs
affinché le cartelle vengano visualizzate 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/point
Controllare 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 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/point
Se 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.
Smontare un bucket
Per smontare un bucket, utilizza lo strumento fusermount
:
fusermount -u /path/to/mount/point
Passaggi successivi
Scopri di più sul rendimento di Cloud Storage FUSE, ad esempio come controllare il comportamento di memorizzazione nella cache o registrare l'attività.
Scopri di più sulla semantica delle directory in Cloud Storage FUSE.