Nesta página, você encontrará várias maneiras de ativar buckets do Cloud Storage no sistema de arquivos local usando o Cloud Storage FUSE.
Antes de começar
Para montar buckets, é preciso primeiro concluir as tarefas a seguir.
Acessar os papéis necessários
Para ativar um bucket, peça ao proprietário do bucket para conceder a você o papel Leitor de objetos do Storage (roles/storage.objectViewer
) no bucket. Se você criou o bucket, provavelmente já tem o papel Administrador do Storage (roles/storage.admin
) nele e não precisa do papel Leitor de objetos do Storage.
O papel predefinido Leitor de objetos do Storage contém a permissão necessária para ativar um bucket. Para conferir a permissão exata necessária, expanda a seção Permissões necessárias:
Permissões necessárias
storage.objects.list
Também é possível conseguir essa permissão com papéis personalizados ou outros papéis predefinidos.
Para instruções sobre como conceder papéis nos buckets, consulte Usar o IAM com buckets.
Instale o Cloud Storage FUSE
Instale o Cloud Storage FUSE, caso ainda não tenha feito isso.
Autenticar solicitações do FUSE do Cloud Storage
Para autenticar as solicitações do FUSE do Cloud Storage no Cloud Storage, você precisa configurar o Application Default Credentials. Por padrão, o Cloud Storage FUSE carrega automaticamente o Application Default Credentials existente sem nenhuma configuração adicional.
Para usar a Google Cloud CLI para configurar o Application Default Credentials, siga estas etapas:
- Install the Google Cloud CLI.
-
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.
Quando você cria uma máquina virtual (VM) do Compute Engine, a conta de serviço também pode ser usada para autenticar o acesso ao Cloud Storage FUSE.
Montar um bucket
Para ativar buckets no sistema de arquivos local, use o seguinte comando:
gcsfuse GLOBAL_OPTIONS BUCKET_NAME MOUNT_POINT
Em que:
GLOBAL_OPTIONS
são as opções que você pode incluir para controlar como a ativação é configurada. Para mais informações sobre as opções e como usá-las, consulte Opções da CLI do Cloud Storage FUSE.BUCKET_NAME
é o nome do bucket que você quer ativar. Por exemplo,my-bucket
. Se você quiser executar a montagem dinâmica, exclua um nome de bucket do comando.MOUNT_POINT
é o diretório local em que o bucket é ativado. Por exemplo,/path/to/mount/point
.
Depois que o Cloud Storage FUSE sair, é possível acessar seus buckets montados executando
ls
no ponto de ativação do bucket. Se preferir que o Cloud Storage FUSE permaneça em primeiro plano (por exemplo, para a geração de registros de depuração), execute o comando gcsfuse
com a sinalização --foreground
.
Exemplos de montagem
Nesta seção, descrevemos diferentes exemplos de comandos para a montagem de buckets.
Montagem estática
A montagem estática se refere à ativação de um bucket específico. Por exemplo, para ativar um bucket chamado 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 à ativação de todos os buckets a que um usuário tem acesso como subdiretórios.
Quando você executa a montagem dinâmica, exclui os nomes dos buckets do comando.
Por exemplo, digamos que você tenha acesso a buckets chamados my-bucket-1
, my-bucket-2
e my-bucket-3
. Para ativar todos os buckets no diretório /path/to/mount/point
, execute os seguintes comandos:
mkdir /path/to/mount/point
gcsfuse /path/to/mount/point
Em seguida, é possível acessar os buckets 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/
Buckets montados dinamicamente não podem ser listados a partir do ponto de montagem raiz. Em vez disso, o nome do bucket precisa ser especificado como parte da operação de lista.
Como ativar um bucket como somente leitura
Para ativar um bucket como somente leitura, transmita a opção -o ro
para o comando gcsfuse
. Por exemplo, para ativar um bucket chamado my-bucket
como somente leitura no
diretório /path/to/mount/point
, execute o seguinte comando:
gcsfuse -o ro my-bucket /path/to/mount/point
Montar um diretório em um bucket
Por padrão, o Cloud Storage FUSE monta totalmente os buckets, o que inclui todo o conteúdo e as estruturas de diretório do bucket. Para ativar um diretório específico em um bucket, transmita a opção --only-dir
para o comando gcsfuse
. Por exemplo,
para ativar 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
Como ativar usando o comando mount
do Linux
A instalação do Cloud Storage FUSE inclui um auxiliar compreendido pelo comando mount
do Linux, que permite usar o comando mount
para ativar buckets.
Se você estiver usando o Linux, execute o comando mount
na raiz. Por exemplo,
o comando a seguir monta um bucket chamado my-bucket
para o caminho
/path/to/mount/point
:
sudo mount -t gcsfuse -o rw,user my-bucket /path/to/mount/point
Durante a montagem com o comando mount
do Linux, as opções da CLI do Cloud Storage FUSE
podem ser transmitidas como um argumento para a flag -o
, mas os hifens (-
) precisam ser substituídos por sublinhados (_
).
Por exemplo, implicit_dirs
no lugar de implicit-dirs
.
sudo mount -t gcsfuse -o implicit_dirs my-bucket /path/to/mount/point
Montagem permanente
A instalação do FUSE do Cloud Storage inclui um auxiliar instalado no sistema no caminho /sbin/mount.gcsfuse
. Esse auxiliar permite criar
pontos de montagem usando o arquivo /etc/fstab
. Assim, você consegue manter as ativações.
Por exemplo, quando adicionada ao arquivo /etc/fstab
, a linha a seguir define
um ponto de ativação para o bucket my-bucket
no caminho /mount/point
:
my-bucket /mount/point gcsfuse rw,noauto,user
Em que:
A opção
rw
especifica que o ponto de ativação será criado com permissões de leitura e gravação.A opção
noauto
especifica que o sistema de arquivos não deve ser montado no momento da inicialização.A opção
user
permite que qualquer pessoa crie o ponto de ativação especificado no arquivo/etc/fstab
. Depois que a linha de amostra é adicionada ao arquivo/etc/fstab
, é possível executarmount /mount/point
como um usuário não raiz.
Se você quiser ativar o bucket automaticamente na inicialização, talvez seja necessário incluir a opção x-systemd.requires=network-online.target
ou _netdev
na entrada /etc/fstab
para garantir que o Cloud Storage FUSE aguarde para o sistema de rede
estar pronto antes da ativação. Por exemplo:
my-bucket /mount/point gcsfuse rw,x-systemd.requires=network-online.target,user
É possível ativar um bucket automaticamente como um usuário não raiz específico incluindo
as opções uid
e/ou gid
na sua entrada /etc/fstab
. Por exemplo:
my-bucket /mount/point gcsfuse rw,_netdev,allow_other,uid=1001,gid=1001
Assim como o comando mount
do Linux, as flags usadas para montagem no arquivo /etc/fstab
precisam usar sublinhados (_
) no lugar de hifens (-
). Por exemplo, implicit_dirs
no lugar de implicit-dirs
.
Montar um bucket com pastas
É possível montar buckets com vários tipos de pastas.
Montar um bucket com pastas gerenciadas
Para ativar um bucket incluindo as pastas gerenciadas, inclua a
opção --implicit-dirs
no comando.
Por exemplo, para ativar um bucket chamado my-bucket
e as pastas gerenciadas no diretório /path/to/mount/point
, execute os seguintes comandos:
gcsfuse my-bucket /path/to/mount/point --implicit-dirs
Ao montar um bucket com pastas gerenciadas, lembre-se das seguintes limitações e considerações:
As pastas gerenciadas vazias não aparecem em buckets montados.
Não é possível definir ou gerenciar permissões do IAM em uma pasta gerenciada usando o Cloud Storage FUSE. Para definir ou gerenciar permissões do IAM em uma pasta gerenciada, consulte Usar IAM com pastas gerenciadas.
É possível copiar e mover uma pasta gerenciada em um bucket ativado usando os comandos
cp
emv
. Quando você copia ou move uma pasta gerenciada, as políticas do IAM na pasta gerenciada original não permanecem na nova pasta gerenciada. É necessário definir novas políticas do IAM na nova pasta gerenciada.
Montar um bucket com pastas definidas implicitamente
É possível montar pastas definidas implicitamente usando a flag --implicit-dirs
no
comando do Cloud Storage FUSE. As pastas definidas implicitamente não são
criadas explicitamente como objetos no Cloud Storage. A flag --implicit-dirs
permite que você veja as pastas ao montar um bucket.
Por exemplo, para ativar um bucket chamado my-bucket
no diretório
/path/to/mount/point
com pastas definidas implicitamente, execute o seguinte
comando:
gcsfuse my-bucket /path/to/mount/point --implicit-dirs
Montar um bucket com namespace hierárquico e pastas
É possível montar um bucket com o namespace hierárquico (pré-lançamento)
ativado, incluindo as pastas. Ao montar um bucket com
namespace hierárquico, não é necessário especificar a flag --implicit-dirs
para que as pastas apareçam no bucket montado.
Por exemplo, para ativar um bucket chamado my-bucket
com pastas no diretório
/path/to/mount/point
, execute o seguinte comando:
gcsfuse my-bucket /path/to/mount/point
Controlar permissões de acesso ao ponto de montagem
Por padrão, o Cloud Storage FUSE cria pontos de ativação do bucket com permissões que permitem apenas que o usuário que invoca acesse o conteúdo dos buckets ativados. Essa é uma medida de segurança implementada no kernel do FUSE.
Para ativar um bucket e permitir que outras pessoas acessem o ponto de ativação do bucket, execute 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 você quiser evitar a ativação do bucket como raiz, adicione user_allow_other
ao arquivo /etc/fuse.conf
para permitir que outras pessoas acessem o ponto de ativação do bucket.
Para acessar um bucket ativado, outros usuários, além do usuário que o invoca, precisam ter as permissões do IAM necessárias.
Papéis necessários para acessar um bucket ativado
Para ler e gravar em um bucket montado, peça ao proprietário do bucket para conceder a você o papel de Usuário do objeto do Storage (roles/storage.objectUser
) no bucket.
Esse papel predefinido contém as permissões necessárias para ler em um bucket ativado e gravar em um bucket ativado. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
storage.objects.create
storage.objects.delete
storage.objects.get
storage.objects.list
storage.objects.update
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
Para instruções sobre como conceder papéis nos buckets, consulte Usar o IAM com buckets.
Desconectar um bucket
Para desativar um bucket, use a ferramenta fusermount
:
fusermount -u /path/to/mount/point
A seguir
Saiba mais sobre a performance do Cloud Storage FUSE. Por exemplo, como controlar o comportamento de armazenamento em cache ou registrar atividade.
Saiba mais sobre a semântica de diretório no Cloud Storage FUSE.