Opções da CLI FUSE do Cloud Storage
Esta página descreve várias formas de montar contentores do Cloud Storage no seu sistema de ficheiros local através do Cloud Storage FUSE.
Antes de começar
Para montar e aceder a contentores, tem de concluir primeiro as seguintes tarefas.
Obtenha as funções necessárias para montar e aceder a um contentor
Para montar, aceder e realizar operações de leitura e escrita num contentor, peça ao proprietário do contentor para lhe conceder a função de utilizador de objetos de armazenamento (roles/storage.objectUser
) no contentor.
Esta função predefinida contém as autorizações necessárias para ler a partir de um contentor montado e escrever num contentor montado. Para ver as autorizações exatas necessárias, expanda a secção Autorizações necessárias:
Autorizações necessárias
storage.objects.create
storage.objects.delete
storage.objects.get
storage.objects.list
storage.objects.update
Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.
Para obter instruções sobre como conceder funções em contentores, consulte o artigo Use o IAM com contentores.
Instale o FUSE do Cloud Storage
Se ainda não o fez, instale o Cloud Storage FUSE.
Autentique pedidos FUSE do Cloud Storage
Para autenticar pedidos do Cloud Storage FUSE para o Cloud Storage, tem de configurar as Credenciais padrão da aplicação. Por predefinição, o Cloud Storage FUSE carrega automaticamente as credenciais predefinidas da aplicação existentes sem configuração adicional.
Para usar a CLI Google Cloud para configurar as Credenciais padrão da aplicação, conclua os seguintes passos:
-
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 cria uma máquina virtual (VM) do Compute Engine, a respetiva conta de serviço também pode ser usada para autenticar o acesso ao Cloud Storage FUSE.
Monte um balde
Para montar contentores no seu sistema de ficheiros local, use o seguinte comando:
gcsfuse GLOBAL_OPTIONS BUCKET_NAME MOUNT_POINT
Onde:
GLOBAL_OPTIONS
são as opções que pode incluir para controlar a forma como o suporte é configurado. Para mais informações sobre as opções e como as usar, consulte o CLI FUSE do Cloud Storage ou as páginas de referência do ficheiro de configuração do FUSE do Cloud Storage.BUCKET_NAME
é o nome do contentor que quer montar. Por exemplo,my-bucket
. Se quiser fazer a montagem dinâmica, exclua um nome de contentor do comando.MOUNT_POINT
é o diretório local onde o contentor é montado. Por exemplo,/path/to/mount/point
.
Opcional: para criar diretórios definidos implicitamente que lhe permitem navegar para pastas que apenas contêm objetos aninhados mais profundamente, inclua a flag --implicit-dirs
no seu comando gcsfuse
. Para saber mais acerca dos diretórios definidos implicitamente, consulte o artigo Semântica de diretórios.
Depois de sair do Cloud Storage FUSE, pode aceder aos contentores montados executando o comando
ls
no ponto de montagem do contentor. Se preferir que o Cloud Storage FUSE permaneça em primeiro plano (por exemplo, para registo de depuração), pode executar o comando gcsfuse
com o campo foreground
ou a opção --foreground
.
Exemplos de montagem
Esta secção descreve diferentes comandos de exemplo para montar contentores.
Montagem estática
A montagem estática refere-se à montagem de um contentor específico. Por exemplo, para montar um
contentor denominado my-bucket
no diretório /path/to/mount/point
, execute os
seguintes comandos:
mkdir /path/to/mount/point
gcsfuse my-bucket /path/to/mount/point
Montagem dinâmica
A montagem dinâmica refere-se à montagem de todos os contentores aos quais um utilizador tem acesso como subdiretórios.
Quando realiza a montagem dinâmica, exclui os nomes dos contentores do comando.
Por exemplo, suponhamos que tem acesso a contentores denominados my-bucket-1
, my-bucket-2
e my-bucket-3
. Para montar todos os contentores no diretório /path/to/mount/point
,
execute os seguintes comandos:
mkdir /path/to/mount/point
gcsfuse /path/to/mount/point
Em seguida, pode aceder aos contentores como subdiretórios:
ls /path/to/mount/point/my-bucket-1/
ls /path/to/mount/point/my-bucket-2/
ls /path/to/mount/point/my-bucket-3/
Não é possível listar os contentores montados dinamicamente a partir do ponto de montagem raiz. Em alternativa, o nome do contentor tem de ser especificado como parte da operação de listagem.
Montar um contentor como só de leitura
Para montar um contentor como só de leitura, transmita a opção -o ro
ao comando gcsfuse
. Por exemplo, para montar um contentor denominado my-bucket
como só de leitura no diretório /path/to/mount/point
, execute o seguinte comando:
gcsfuse -o ro my-bucket /path/to/mount/point
Monte um diretório num contentor
Por predefinição, o Cloud Storage FUSE monta contentores na totalidade, o que inclui todo o conteúdo e as estruturas de diretórios do contentor. Para montar um diretório específico num contentor, transmita a opção --only-dir
à CLI gcsfuse
ou ao campo only-dir
num ficheiro de configuração do Cloud Storage FUSE. Por exemplo, para montar o diretório my-bucket/a/b
no diretório /path/to/mount/point
, execute o seguinte comando:
gcsfuse --only-dir a/b my-bucket /path/to/mount/point
Faça a montagem através do comando mount
do Linux
A instalação do FUSE do Cloud Storage inclui um auxiliar que é compreendido pelo comando Linux mount
, o que lhe permite usar o comando mount
para montar contentores.
O comando mount
tem de ser executado a partir da raiz se estiver a usar o Linux. Por exemplo,
o comando seguinte monta um contentor com o nome my-bucket
no caminho
/path/to/mount/point
:
sudo mount -t gcsfuse -o rw,user my-bucket /path/to/mount/point
Quando usar o comando mount
do Linux para a montagem, pode transmitir as opções gcsfuse
como um argumento para a opção -o
, mas os hífens (-
) nas mesmas devem ser substituídos por sublinhados (_
). Por exemplo, implicit_dirs
em vez de implicit-dirs
.
sudo mount -t gcsfuse -o implicit_dirs my-bucket /path/to/mount/point
Montagem persistente
A instalação do FUSE do Cloud Storage inclui um auxiliar que é instalado no seu sistema no caminho /sbin/mount.gcsfuse
. Esta ferramenta auxiliar permite-lhe criar pontos de montagem através do ficheiro /etc/fstab
para poder manter as suas montagens.
Por exemplo, quando adicionada ao ficheiro /etc/fstab
, a seguinte linha define
um ponto de montagem para um contentor denominado my-bucket
no caminho /mount/point
:
my-bucket /mount/point gcsfuse rw,noauto,user
Onde:
A opção
rw
especifica que o ponto de montagem deve ser criado com autorizações de leitura e escrita.A opção
noauto
especifica que o sistema de ficheiros não deve ser montado no momento do arranque.A opção
user
permite que qualquer pessoa crie o ponto de montagem especificado no ficheiro/etc/fstab
. Depois de a linha de exemplo ser adicionada ao ficheiro/etc/fstab
, pode executarmount /mount/point
como um utilizador não raiz.
Se quiser montar o contentor automaticamente no arranque, pode ter de incluir a opção x-systemd.requires=network-online.target
ou a opção _netdev
na entrada /etc/fstab
para garantir que o FUSE do Cloud Storage aguarda que o sistema de rede esteja pronto antes da montagem. Por exemplo:
my-bucket /mount/point gcsfuse rw,x-systemd.requires=network-online.target,user
Pode montar um contentor automaticamente como um utilizador específico não root incluindo as opções uid
, gid
ou ambas na sua entrada /etc/fstab
. Por exemplo:
my-bucket /mount/point gcsfuse rw,_netdev,allow_other,uid=1001,gid=1001
Semelhante ao comando linux mount
, as marcas usadas para a montagem no ficheiro /etc/fstab
têm de usar sublinhados (_
) em vez de travessões (-
). Por exemplo, implicit_dirs
em vez de implicit-dirs
.
Monte um contentor com pastas
Pode montar contentores com vários tipos de pastas.
Monte um contentor com pastas geridas
Para montar um contentor, incluindo as respetivas pastas geridas, inclua a opção --implicit-dirs
ou o campo implicit-dirs
no seu comando.
Por exemplo, para montar um contentor denominado my-bucket
e as respetivas pastas geridas no diretório /path/to/mount/point
, execute os seguintes comandos:
gcsfuse --implicit-dirs my-bucket /path/to/mount/point
Ao montar um contentor com pastas geridas, tenha em atenção as seguintes limitações e considerações:
As pastas geridas vazias não aparecem em contentores montados.
Não pode definir nem gerir autorizações de IAM numa pasta gerida através do FUSE do Cloud Storage. Para definir ou gerir autorizações de IAM numa pasta gerida, consulte o artigo Use o IAM com pastas geridas.
Pode copiar e mover uma pasta gerida num contentor montado através dos comandos
cp
emv
. Quando copia ou move uma pasta gerida, as políticas de IAM na pasta gerida original não persistem na nova pasta gerida. Tem de definir novas políticas IAM na nova pasta gerida.
Monte um contentor com pastas definidas implicitamente
Pode montar pastas definidas implicitamente através da opção --implicit-dirs
gcsfuse
na CLI gcsfuse
ou do campo implicit-dirs
num ficheiro de configuração do FUSE do Cloud Storage. As pastas definidas implicitamente são pastas que não são criadas explicitamente como objetos no Cloud Storage. A opção --implicit-dirs
permite-lhe ver pastas quando
monta um contentor.
Por exemplo, para montar um contentor denominado my-bucket
no diretório /path/to/mount/point
com pastas definidas implicitamente, execute o seguinte comando:
gcsfuse --implicit-dirs my-bucket /path/to/mount/point
Monte um contentor com pastas ativado para o espaço de nomes hierárquico
Pode montar um contentor com o espaço de nomes hierárquico ativado, incluindo as respetivas pastas. Quando monta um contentor com o espaço de nomes hierárquico, não precisa de especificar a opção --implicit-dirs
gcsfuse
nem o campo implicit-dirs
para que as pastas apareçam no contentor montado.
Por exemplo, para montar um contentor denominado my-bucket
com pastas no diretório /path/to/mount/point
, execute o seguinte comando:
gcsfuse my-bucket /path/to/mount/point
Controle as autorizações de acesso ao ponto de montagem
Por predefinição, o Cloud Storage FUSE cria pontos de montagem de contentores com autorizações que permitem apenas que o utilizador que invoca aceda ao conteúdo dos contentores montados. Esta é uma medida de segurança implementada no kernel FUSE.
Para montar um contentor e permitir que outras pessoas acedam ao ponto de montagem do contentor, pode executar o comando mount
como raiz com a opção -o allow_other
:
mount -t gcsfuse -o allow_other my-bucket /path/to/mount/point
Se quiser evitar a montagem do contentor como raiz, tem de adicionar
user_allow_other
ao ficheiro /etc/fuse.conf
para permitir que outras pessoas acedam ao ponto de montagem do contentor.
Desmonte um contentor
Para desmontar um contentor, use a ferramenta fusermount
:
fusermount -u /path/to/mount/point
O que se segue?
Saiba mais sobre as práticas recomendadas de otimização do desempenho do FUSE do Cloud Storage, como controlar o comportamento da colocação em cache ou registar a atividade.
Saiba mais sobre a semântica de diretórios no Cloud Storage FUSE.