我只是通过
将33.7k文件从存储桶的顶层移动到子目录中 gsutil -m mv gs://[BUCKET_NAME]/\*.json gs://[BUCKET_NAME]/dumps/
虽然文件在飞行中,但我的老板在云存储的网络界面中,她看到一些文件是公开共享的:
我立即通过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"
}
]
答案 0 :(得分:0)
gsutil cp
the same options的does 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/
前缀下的对象不应公开显示。
至于为什么你的顶级对象首先是公开可见的,你的猜测和我的一样好:)。