我已经安装了一个Google Compute Engine(GCE)示例,我想在上面挂载一个Google Cloud Bucket。基本上,我已经将数据上传到Google Cloud,我想让它在我的示例中安装的R Studio服务器上可用。看起来我的挂载成功了,但是我在R上(或shell中)看不到数据。
我希望bucket安装在/home/roberto/remote
中。我运行了chmod 777 /home/roberto/remote
,然后运行了gcsfuse my-project /home/roberto/remote
。我得到了以下输出:
2023/01/28 22:49:01.004683 Start gcsfuse/0.41.12 (Go version go1.18.4) for app "" using mount point: /home/roberto/remote
2023/01/28 22:49:01.022553 Opening GCS connection...
2023/01/28 22:49:01.172583 Mounting file system "my-project"...
2023/01/28 22:49:01.176837 File system has been successfully mounted.
但是,当我运行ls
时,或者当我从R Studio-server查看/home/roberto/remote
内部时,我看不到它内部的任何内容(见下图)。
更新:我已经上传了我的文件夹到谷歌云,但是当我上传一个单独的文件时,它突然出现了!这让我认为这个问题与implicit directories有关。假设,如果我运行与以前相同的命令,并带有--implicit-dirs
标志,这就足够了(类似于:gcsfuse --implicit-dirs my-project /home/roberto/remote
)。但是,这将返回一个错误消息,我不知道如何处理它。
错误信息:
2023/01/29 01:33:15.428752 Start gcsfuse/0.41.12 (Go version go1.18.4) for app "" using mount point: /home/roberto/remote
2023/01/29 01:33:15.446696 Opening GCS connection...
2023/01/29 01:33:15.548211 Mounting file system "my-project"...
daemonize.Run: readFromProcess: sub-process: mountWithArgs: mountWithConn: Mount: mount: running /usr/bin/fusermount3: exit status 1
3条答案
按热度按时间k3bvogb11#
尝试将存储的VM Cloud API访问作用域编辑为"完全"。
请按照以下步骤操作:
1.单击/选择虚拟机示例
1.停止VM示例,然后编辑VM示例。
1.向下滚动到访问范围并选择"为每个API设置访问权限"
1.将存储从只读更改为完整。
1.保存并启动VM示例。
然后通过SSH连接到您的虚拟机示例并尝试
ls /home/roberto/remote
qni6mghb2#
根据您的问题,这里的其他答案可能有用。在我的情况下,真正解决这个问题的是运行命令
gcsfuse --implicit-dirs my-project /home/roberto/remote
。我在编辑我的问题时得到的错误是由于我之前安装了bucket,并且试图在没有先卸载它的情况下再次安装它(这里是关于如何卸载bucket的官方文档).有关--implicit-dirs
标志重要性的更多细节,请查看这里的官方文档.有非常相似的解决方案使用,例如,/etc/fstab
文件。为此,请查看gcsfuse官方github页面中的discussion。omjgkv6w3#
尝试运行带有调试标志的gcsfuse mount命令,这将有助于了解装载失败的原因。例如:gcsfuse --隐式目录--调试熔丝--调试gcs --调试http我的项目/主页/roberto/远程