gsutil mv命令是否在飞行中公开共享文件?

时间:2018-04-05 09:12:47

标签: google-cloud-platform google-cloud-storage gsutil

我只是通过

将33.7k文件从存储桶的顶层移动到子目录中

gsutil -m mv gs://[BUCKET_NAME]/\*.json gs://[BUCKET_NAME]/dumps/

虽然文件在飞行中,但我的老板在云存储的网络界面中,她看到一些文件是公开共享的:

GCS Webview

我立即通过gsutil ls -L gs://[BUCKET_NAME]/dumps/[SOME_FILE].json检查了所列文件的权限,但在移动后以及没有公开分享之前,它们看起来很好。

检查the documentation后,我看到有一个-p选项来保留ACL。但我不知道这是否会阻止这种情况,因为我的默认存储区ACL看起来像这样:

gsutil defacl get gs://[BUCKET_NAME]
[
  {
    "entity": "project-owners-xxx",
    "projectTeam": {
      "projectNumber": "xxx",
      "team": "owners"
    },
    "role": "OWNER"
  },
  {
    "entity": "project-editors-xxx",
    "projectTeam": {
      "projectNumber": "xxx",
      "team": "editors"
    },
    "role": "OWNER"
  },
  {
    "entity": "project-viewers-xxx",
    "projectTeam": {
      "projectNumber": "xxx",
      "team": "viewers"
    },
    "role": "READER"
  }
] 

2 个答案:

答案 0 :(得分:0)

默认情况下,{p> gsutil cp the same optionsdoes not copy the objects ACL-p相同,此命令默认为set an ACL on the bucket

{{1}}将考虑每个对象的ACL。在这种情况下,作为源和目标存储桶是相同的,如果要将文件保密,则必须{{3}}。

答案 1 :(得分:0)

查看您提供的屏幕截图,看起来您处于最高级别(我假设左上角的蓝色“s”来自“Buckets”一词,位于“Name”的正上方“专栏”。在这种情况下,您正在查看尚未移动的对象。将对象从gs://BUCKET/移动到gs://BUCKET/subdir/后,如果您显示的defacl正确无误,则subdir/前缀下的对象不应公开显示。

至于为什么你的顶级对象首先是公开可见的,你的猜测和我的一样好:)。