访问安装有 Fuse 的存储桶时,显示 403 禁止错误

访问安装有 Fuse 的存储桶时,显示 403 禁止错误

我有一个谷歌云项目。在那个项目中。我有一个 VM 实例。我使用 fuse 将 uploads 文件夹挂载到 Google Cloud Storage 存储桶中。

在安装时我收到这样的错误,

Using mount point: /var/www/html/porject/app/webroot/uploads
Opening GCS connection...
Opening bucket...
Mounting file system...
daemonize.Run: readFromProcess: sub-process: mountWithArgs: mountWithConn: Mount: mount: running fusermount: exit status 1

stderr:
fusermount: mount failed: Operation not permitted

所以我现在使用 sudo 命令,得到了这样的回应

Using mount point: /var/www/html/4thambit_v7/app/webroot/uploads
Opening GCS connection...
Opening bucket...
Mounting file system...
File system has been successfully mounted.

但我无法访问上传文件夹,它显示 403 错误(见图片)。

ls -l 命令响应如下

drwxrwxrwx.  1 root             root                     0 May  8 13:26 uploads

有人知道在带有云存储桶的 centos 机器中挂载文件夹的正确步骤吗?如果 gcs 挂载成功。它将类似于本地目录的工作方式。

答案1

这听起来像是权限错误。我建议运行 gcsfuse(包括--foreground--debug_fuse选项)来查看完整错误。

由于您似乎已以 root 身份挂载了文件系统,因此访问该文件/文件夹的用户没有这样做的权限,如下所述文档

您可以使用gcloud auth login(关联)使用您的 Google 帐户登录并按照此命令挂载文件系统。

答案2

默认的 GCSFUSE 是 READONLY,对于读/写应该是密钥 json 文件:

  1. 为服务账户创建 json 密钥: https://console.cloud.google.com/iam-admin/serviceaccounts/details/

  2. 将您的 json 文件上传到服务器

  3. 像这样运行 gcsfuse:

    gcsfuse --key-file="/path/to/key-4c8e254b9365.json" bucket_name_path /path/to/mount/bucket
    

相关内容