【问题标题】:Google Storage Bucket contents copied from another bucket with "gsutil cp" doesn't show up when the bucket is mounted挂载存储桶时,不会显示从另一个存储桶中使用“gsutil cp”复制的 Google 存储桶内容
【发布时间】:2019-01-07 07:00:05
【问题描述】:

我有一个“旧”的 Google 存储桶,在这里我称之为“foo-test”,还有一个“新”的桶,“foo-01”(不是他们的真名)。 I was able to copy the contents of the old bucket into the new bucket 使用“gsutil cp”。

成功了。或者我是这么想的。如果我转到 Google 存储浏览器,旧存储桶的内容会出现在新存储桶中。

但是我的 Google Compute 实例什么都看不到!

当我安装旧桶时

gcsfuse -o allow_other -file-mode=777 -dir-mode=777 foo-test /var/foo

然后我做

ls /var/foo

我得到了存储桶的内容。

但是当我用

挂载新存储桶时
gcsfuse -o allow_other -file-mode=777 -dir-mode=777 foo-01 /var/foo

然后我做

ls /var/foo

我什么都得不到!

【问题讨论】:

  • 你能用 --debug_gcs 标志运行你的挂载命令吗,比如gcsfuse --debug_gcs -o allow_other ... 看看它是否给出任何指示?
  • @LundinCast 使用挂载点:/var/foo 正在打开 GCS 连接...正在打开存储桶...正在挂载文件系统...文件系统已成功挂载。另一个注意事项:如果 INSTANCE 将任何内容放入存储桶中,它会显示出来,同时从实例和存储浏览器查看存储桶。
  • 您还可以检查新对象的 ACL 吗?默认情况下,gsutil cp 命令不会将对象 ACL 复制到新对象,而是使用默认存储桶 ACL,这可能不会授予您访问权限。
  • 现在,我们正在取得进展。什么是 ACL,如何检查?
  • @LundinCast "gsutil acl get" 显示出差异。当我尝试“gsutil acl get”它们时,新存储桶中复制的目录显示“CommandException:没有匹配的 URL”。我尝试将新桶擦干净,然后执行“gsutil cp -r -p”(而不仅仅是“-r”)。结果相同。最后我把新的桶擦干净,将两个桶安装在一个实例中,然后从一个桶到另一个桶执行“cp -r -P -p”。那行得通。

标签: google-cloud-storage gcsfuse


【解决方案1】:

我最终将新存储桶擦干净,将两个存储桶安装在一个实例中,并从实例的命令行从一个存储桶到另一个存储桶执行“cp -r -P -p”。那行得通。看看我的 cmets 有什么没有。

【讨论】:

    猜你喜欢
    • 2022-06-12
    • 1970-01-01
    • 2019-04-29
    • 2018-06-18
    • 2016-06-28
    • 2013-11-01
    • 2017-03-17
    • 2018-11-22
    • 2023-02-01
    相关资源
    最近更新 更多