gsutil mv 命令是否在飞行中公开共享文件?
Does gsutil mv command share files publicly in flight?
我刚刚通过
将大约 33.7k 文件从存储桶的顶级移动到子目录
gsutil -m mv gs://[BUCKET_NAME]/\*.json gs://[BUCKET_NAME]/dumps/
在文件传输过程中,我的老板在 Cloud Storage 的网络界面中看到一些文件已公开共享:
我立即通过 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"
}
]
gsutil mv
有 the same options by default than gsutil cp
, and this command, by default, does not copy the objects ACL.
-p
将考虑每个对象的 ACL。由于源存储桶和目标存储桶在本例中是相同的,因此如果要将文件保密,则必须 set an ACL on the bucket。
查看您提供的屏幕截图,您似乎在桶的 top-level 中(我假设 top-left 角中的蓝色 "s" 来自单词 "Buckets",就在 "Name" 列的正上方)。在这种情况下,您正在查看 尚未移动的对象 。将对象从 gs://BUCKET/
移动到 gs://BUCKET/subdir/
后,如果您的默认设置正确,则 subdir/
前缀下的对象应该不会公开显示。
至于为什么你的 top-level 对象首先是公开可见的,你的猜测和我的一样好:)
我刚刚通过
将大约 33.7k 文件从存储桶的顶级移动到子目录gsutil -m mv gs://[BUCKET_NAME]/\*.json gs://[BUCKET_NAME]/dumps/
在文件传输过程中,我的老板在 Cloud Storage 的网络界面中看到一些文件已公开共享:
我立即通过 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"
}
]
gsutil mv
有 the same options by default than gsutil cp
, and this command, by default, does not copy the objects ACL.
-p
将考虑每个对象的 ACL。由于源存储桶和目标存储桶在本例中是相同的,因此如果要将文件保密,则必须 set an ACL on the bucket。
查看您提供的屏幕截图,您似乎在桶的 top-level 中(我假设 top-left 角中的蓝色 "s" 来自单词 "Buckets",就在 "Name" 列的正上方)。在这种情况下,您正在查看 尚未移动的对象 。将对象从 gs://BUCKET/
移动到 gs://BUCKET/subdir/
后,如果您的默认设置正确,则 subdir/
前缀下的对象应该不会公开显示。
至于为什么你的 top-level 对象首先是公开可见的,你的猜测和我的一样好:)