使用 gcsfuse 安装 Google 存储桶文件夹

使用 gcsfuse 安装 Google 存储桶文件夹

0 反对 收藏

我无法挂载 Google 存储桶内的特定文件夹

在 OS X 上,此程序允许您使用 mount 命令挂载存储桶。(在 Linux 上,只有 root 可以执行此操作。)

mount -t gcsfuse -o rw,用户 my-bucket /path/to/mount/point

在 OS X 和 Linux 上,您还可以向 /etc/fstab 文件添加条目,如下所示:

我的存储桶/挂载/点 gcsfuse rw,noauto,用户

有人能帮助我吗?

我的存储桶:文件夹名称/mount/point gcsfuse rw,noauto,用户

这对我不起作用


感谢您的回复。我们首先使用上述文档安装了存储桶

然后创建了一个指向已安装文件夹的符号链接,使其正常工作

ln -s /mnt/s3/subfolderinsidebucket /your path

并在 /etc/fstab 中

my-bucket /mount/point gcsfuse rw,noauto,user

当服务器重启时,我们再次遇到一个问题,它无法自动挂载

因此我们在 crontab @reboot mount.sh 中添加了一个条目,并在 sh 文件中添加了 mount 命令

答案1

按照此文档https://github.com/GoogleCloudPlatform/gcsfuse/blob/master/docs/mounting.md

您必须添加此内容/etc/fstabmy-bucket /mount/point gcsfuse rw,noauto,user

之后您可以mount /mount/point以非root用户身份运行。

obs:noauto上述选项指定文件系统不应在启动时挂载。

我不知道您是否可以在存储桶中挂载特定文件夹,但您可以尝试my-bucket/foldername /mount/point gcsfuse rw,noauto,user(将“:”更改为“/”)

答案2

@George 的答案很接近,但对于在存储桶中安装特定文件夹来说并不正确。

要挂载存储桶中的特定文件夹,请使用以下语法:

my-bucket /mount/point gcsfuse rw,user,key_file=/path/to/key.json,only_dir=my_subdirectory

only_dir=my_subdirectory是其中重要的部分。

key_file=如果您正在 Google 计算实例上安装,则不需要。

答案3

非常非常晚了但是...因此,要在挂载点中挂载存储桶的特定子目录:

--> 命令

gcsfuse -o 选项1,选项2 --only-dir sub_dirirectory/ -key-file=/path/to/key.json bucket_name /path/to/mount/point

--> fstab

bucket_name /path/to/mount/point gcsfuse rw,用户,key_file=/path/to/key.json,only_dir=sub_directory

答案4

gcfuse--implicit-dirs允许您使用标志和在存储桶中挂载特定子文件夹(包含内容)--only-dir

正确的语法是

gcsfuse --implicit-dirs --only-dir <subdir-relative-to-bucket> <bucket> <mount_point>

例如,在云端我有一个包含根目录my_bucket和子目录的存储桶my_bucket/sub_dir/sub_sub_dir,我想将其挂载到本地目录中mount_dir,然后我这样做

gcsfuse --implicit-dirs --only-dir sub_dir/sub_sub_dir my_bucket mount_dir

相关内容