En esta página, se describen varias formas de activar buckets de Cloud Storage en tu sistema de archivos local mediante Cloud Storage FUSE.
Antes de comenzar
Para activar buckets, primero debes completar las siguientes tareas.
Obtén los roles necesarios
Para activar un bucket, pídele al propietario del bucket que te otorgue el rol de visualizador de objetos de almacenamiento (roles/storage.objectViewer
) en el bucket. Ten en cuenta que, si creaste el bucket, es probable que ya tengas la función de administrador de almacenamiento (roles/storage.admin
) en el bucket y no necesites la función de visualizador de objetos de almacenamiento.
La función predefinida de Visualizador de objetos de almacenamiento contiene el permiso necesario para activar un depósito. Para ver el permiso exacto que es necesario, expande la sección Permisos requeridos:
Permisos necesarios
storage.objects.list
También puedes obtener este permiso con roles personalizados o con otros roles predefinidos.
Para obtener instrucciones para otorgar roles a los buckets, consulta Usa IAM con buckets.
Instala Cloud Storage FUSE
Si aún no lo has hecho, instala Cloud Storage FUSE.
Autentica solicitudes de Cloud Storage FUSE
Para autenticar las solicitudes de Cloud Storage FUSE en Cloud Storage, debes configurar las credenciales predeterminadas de la aplicación. De forma predeterminada, Cloud Storage FUSE carga automáticamente las credenciales predeterminadas de la aplicación existentes sin ninguna configuración adicional.
Para usar Google Cloud CLI a fin de configurar las credenciales predeterminadas de la aplicación, completa los siguientes pasos:
- 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.
Cuando creas una máquina virtual (VM) de Compute Engine, su cuenta de servicio también se puede usar para autenticar el acceso a Cloud Storage FUSE.
Activa un bucket
Para activar buckets en el sistema de archivos local, usa el siguiente comando:
gcsfuse GLOBAL_OPTIONS BUCKET_NAME MOUNT_POINT
Donde:
GLOBAL_OPTIONS
son las opciones que puedes incluir para controlar cómo se configura la activación. Para obtener más información sobre las opciones y cómo usarlas, consulta Opciones de la CLI de Cloud Storage FUSE.BUCKET_NAME
es el nombre del bucket que deseas activar. Por ejemplo,my-bucket
Si deseas realizar una activación dinámica, excluye el nombre del bucket del comando.MOUNT_POINT
es el directorio local donde se activa el bucket. Por ejemplo,/path/to/mount/point
Después de que Cloud Storage FUSE se cierre, puedes acceder a los buckets activados ejecutando ls
en el punto de activación del bucket. Si prefieres que Cloud Storage FUSE se mantenga en primer plano (por ejemplo, para el registro de depuración), puedes ejecutar el comando gcsfuse
con la marca --foreground
.
Ejemplos de activación
En esta sección, se describen diferentes comandos de ejemplo para activar buckets.
Activación estática
La activación estática se refiere a la activación de un bucket específico. Por ejemplo, para activar un bucket llamado my-bucket
en el directorio /path/to/mount/point
, ejecuta los siguientes comandos:
mkdir /path/to/mount/point
gcsfuse my-bucket /path/to/mount/point
Activación dinámica
La activación dinámica se refiere a la activación de todos los buckets a los que un usuario tiene acceso como subdirectorios.
Cuando realizas la activación dinámica, excluyes los nombres de los buckets del comando.
Por ejemplo, supongamos que tienes acceso a los buckets my-bucket-1
, my-bucket-2
y my-bucket-3
. Para activar todos los buckets en el directorio /path/to/mount/point
, ejecuta los siguientes comandos:
mkdir /path/to/mount/point
gcsfuse /path/to/mount/point
Luego, puedes acceder a los buckets como subdirectorios:
ls /path/to/mount/point/my-bucket-1/
ls /path/to/mount/point/my-bucket-2/
ls /path/to/mount/point/my-bucket-3/
Los buckets activados de forma dinámica no pueden aparecer en una lista desde el punto de activación raíz. En su lugar, el nombre del bucket debe especificarse como parte de la operación de lista.
Activa un bucket como de solo lectura
Para activar un bucket como de solo lectura, pasa la opción -o ro
al comando gcsfuse
. Por ejemplo, para activar un bucket llamado my-bucket
como de solo lectura en el directorio /path/to/mount/point
, ejecuta el siguiente comando:
gcsfuse -o ro my-bucket /path/to/mount/point
Activa un directorio dentro de un bucket
De forma predeterminada, Cloud Storage FUSE activa los buckets en su totalidad, lo que incluye todo el contenido y las estructuras de directorios del bucket. Para activar un directorio específico dentro de un bucket, pasa la opción --only-dir
al comando gcsfuse
. Por ejemplo, para activar el directorio my-bucket/a/b
en el directorio /path/to/mount/point
, ejecuta el siguiente comando:
gcsfuse --only-dir a/b my-bucket /path/to/mount/point
Activa mediante el comando mount
de Linux
La instalación de Cloud Storage FUSE incluye un asistente que el comando mount
de Linux comprende, que te permite usar el comando mount
para activar buckets.
El comando mount
debe ejecutarse desde la raíz si usas Linux. Por ejemplo, con el siguiente comando, se activa un bucket llamado my-bucket
en la ruta /path/to/mount/point
:
sudo mount -t gcsfuse -o rw,user my-bucket /path/to/mount/point
Cuando se activa usando el comando mount
de Linux, las opciones de la CLI de Cloud Storage FUSE se pueden pasar como un argumento a la marca -o
, pero los guiones (-
) en ellas deben reemplazarse por guiones bajos (_
). Por ejemplo, implicit_dirs
en lugar de implicit-dirs
.
sudo mount -t gcsfuse -o implicit_dirs my-bucket /path/to/mount/point
Activación persistente
La instalación de Cloud Storage FUSE incluye un asistente que se instala en tu sistema en la ruta /sbin/mount.gcsfuse
. Este asistente te permite crear puntos de activación con el archivo /etc/fstab
para que puedas conservar tus activaciones.
Por ejemplo, cuando se agrega a tu archivo /etc/fstab
, la siguiente línea define un punto de activación para un bucket llamado my-bucket
en la ruta /mount/point
:
my-bucket /mount/point gcsfuse rw,noauto,user
Donde:
La opción
rw
especifica que el punto de activación se crea con permisos de lectura y escritura.La opción
noauto
especifica que el sistema de archivos no se debe activar en el momento del inicio.La opción
user
permite que cualquier persona cree el punto de activación especificado en el archivo/etc/fstab
. Después de agregar la línea de muestra al archivo/etc/fstab
, puedes ejecutarmount /mount/point
como un usuario no raíz.
Si deseas activar el bucket de forma automática en el inicio, es posible que debas incluir la opción x-systemd.requires=network-online.target
o _netdev
en tu entrada /etc/fstab
para asegurarte de que Cloud Storage FUSE espere a que el sistema de red esté listo antes de la activación. Por ejemplo:
my-bucket /mount/point gcsfuse rw,x-systemd.requires=network-online.target,user
Puedes activar un bucket de forma automática como un usuario no raíz específico incluyendo las opciones uid
, gid
o ambos en tu entrada /etc/fstab
. Por ejemplo:
my-bucket /mount/point gcsfuse rw,_netdev,allow_other,uid=1001,gid=1001
Al igual que con el comando mount
de Linux, las marcas que se usan para activar en el archivo /etc/fstab
deben usar guiones bajos (_
) en lugar de guiones (-
). Por ejemplo, implicit_dirs
en lugar de implicit-dirs
.
Activa un bucket con carpetas
Puedes activar buckets con varios tipos de carpetas.
Activa un bucket con carpetas administradas
Para activar un bucket que incluya sus carpetas administradas, incluye la opción --implicit-dirs
en tu comando.
Por ejemplo, para activar un bucket llamado my-bucket
y sus carpetas administradas en el directorio /path/to/mount/point
, ejecuta los siguientes comandos:
gcsfuse my-bucket /path/to/mount/point --implicit-dirs
Cuando actives un bucket con carpetas administradas, ten en cuenta las siguientes limitaciones y consideraciones:
Las carpetas administradas vacías no aparecen en los buckets activados.
No puedes configurar o administrar permisos de IAM en una carpeta administrada por medio de Cloud Storage FUSE. Para configurar o administrar permisos de IAM en una carpeta administrada, consulta Usar IAM con carpetas administradas.
Puedes copiar y mover una carpeta administrada en un bucket activado con los comandos
cp
ymv
. Cuando copias o mueves una carpeta administrada, las políticas de IAM de la carpeta administrada original no se conservan a la carpeta administrada nueva. Debes establecer nuevas políticas de IAM en la carpeta administrada nueva.
Activa un bucket con carpetas definidas de forma implícita
Puedes activar carpetas definidas de forma implícita con la marca --implicit-dirs
en tu comando de Cloud Storage FUSE. Las carpetas definidas de forma implícita son aquellas que no se crean de forma explícita como objetos en Cloud Storage. La marca --implicit-dirs
te permite ver las carpetas cuando activas un bucket.
Por ejemplo, para activar un bucket llamado my-bucket
en el directorio /path/to/mount/point
con carpetas definidas de forma implícita, ejecuta el siguiente comando:
gcsfuse my-bucket /path/to/mount/point --implicit-dirs
Activa un bucket con carpetas con el espacio de nombres jerárquico habilitado
Puedes activar un bucket con el espacio de nombres jerárquico (versión preliminar) habilitado, incluidas sus carpetas. Cuando activas un bucket con espacio de nombres jerárquico, no necesitas especificar la marca --implicit-dirs
para que las carpetas aparezcan en el bucket activado.
Por ejemplo, para activar un bucket llamado my-bucket
con carpetas en el directorio /path/to/mount/point
, ejecuta el siguiente comando:
gcsfuse my-bucket /path/to/mount/point
Controla los permisos de acceso al punto de activación
De forma predeterminada, Cloud Storage FUSE crea puntos de activación de bucket con permisos que solo permiten al usuario invocador acceder al contenido de los buckets activados. Esta es una medida de seguridad que se implementa dentro del kernel de FUSE.
Para activar un bucket y permitir que otros accedan al punto de activación del bucket, puedes ejecutar el comando mount
como raíz con la opción -o allow_other
:
mount -t gcsfuse -o allow_other my-bucket /path/to/mount/point
Si deseas evitar que se active el bucket como raíz, debes agregar user_allow_other
al archivo /etc/fuse.conf
para permitir que otros accedan al punto de activación del bucket.
Para acceder a un bucket activado, otros usuarios, además del usuario que invoca,deben tener los permisos de IAM necesarios.
Funciones necesarias para acceder a un bucket activado
Para leer y escribir en un bucket activado, pídele al propietario del bucket que te otorgue el rol de usuario de objeto de Storage (roles/storage.objectUser
) en el bucket.
Este rol predefinido contiene los permisos necesarios para leer desde un bucket activado y escribir en un bucket activado. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
storage.objects.create
storage.objects.delete
storage.objects.get
storage.objects.list
storage.objects.update
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
Para obtener instrucciones para otorgar roles a los buckets, consulta Usa IAM con buckets.
Desactiva un bucket
Para desactivar un bucket, usa la herramienta fusermount
:
fusermount -u /path/to/mount/point
¿Qué sigue?
Obtén información sobre el rendimiento de Cloud Storage FUSE, por ejemplo, cómo controlar el comportamiento del almacenamiento en caché o la actividad de registro.
Obtén información sobre la semántica de directorio en Cloud Storage FUSE.