首页 > 解决方案 > 存储桶上传的文件未在所有挂载的虚拟机中显示

问题描述

我有一个使用 fstab 安装到 3 个虚拟机的 Google Cloud Storage Bucket。

当我使用 gsutil 命令将文件从另一台机器上传到谷歌存储桶时,上传的文件只能从 2 个虚拟机(Set A)访问。另一个 vm ( Set B ) 不显示新上传的文件。

用于挂载的fstab条目如下。

bucket_name mounted_path gcsfuse rw,uid=1002,gid=1003,user,allow_other,key_file=key_file_path

Set A中的/etc/mtab文件的内容如下。

bucket_name mounted_path fuse rw,nosuid,nodev,relatime,user_id=1002,group_id=1003,default_permissions 0 0

Set B中的/etc/mtab文件的内容如下。

bucket_name mounted_path fuse fuse rw,nosuid,nodev,noexec,relatime,user_id=0,group_id=0,default_permissions,allow_other 0 0

标签: gcloudgsutilgcsfusefstab

解决方案


以下是我在虚拟机上安装存储桶的方法:

  • 创建一个 VM 实例并为其提供存储“完整”访问范围。如果您已经有一个 VM,请使用此范围编辑该 VM。请注意,您需要停止 VM 才能编辑其访问范围。
  • 如果您还没有在您的实例上安装 gcsfuse
  • 在要挂载存储桶的位置创建一个目录mkdir /path/to/bucket
  • 转到云存储并通过将计算引擎默认服务帐户添加为存储管理员来编辑您的存储桶权限,您可以在IAM&admin --> 服务帐户中找到此服务帐户,它具有以下结构1213242443-compute@developer.gserviceaccount.com
  • 用于gcsfuse bucket_name /path/to/bucket安装您的存储桶。这里 gcsfuse 将使用默认服务帐户来验证访问并建立连接。这是最简单的方法,因为它完成了几个步骤
  • 现在您上传到存储桶的任何文件都将出现在虚拟机存储桶安装文件夹中/path/to/bucket

在此处阅读有关此过程的更多信息


推荐阅读