如何在使用 gsutil 保留 ACL 的同时将文件从 Google Cloud Storage 存储桶 1 复制到存储桶 2
Posted
技术标签:
【中文标题】如何在使用 gsutil 保留 ACL 的同时将文件从 Google Cloud Storage 存储桶 1 复制到存储桶 2【英文标题】:How to copy a file from Google Cloud Storage bucket 1 to bucket 2 while keeping ACLs using gsutil 【发布时间】:2021-09-01 23:33:30 【问题描述】:我打算将 Google Cloud Storage 上的单个文件从存储桶 1 复制到存储桶 2,同时使用 gsutil 保留 ACL(访问控制列表)。
以下命令复制文件,但不会复制 ACL 信息:
gsutil cp -p rsync gs://bucket1/path/file gs://bucket2/path/file
如何同时复制文件和 ACL?
【问题讨论】:
这很奇怪。 The documentation 建议使用-p
参数,以便保留 ACL 信息。您是在尝试同步文件还是只是将其复制过来?
【参考方案1】:
首先,如果我们想将对象从一个存储桶复制到另一个存储桶
具有完整 ACL 的存储桶,我们必须使用细粒度访问
控制两个存储桶。
如果我们使用统一访问控制,那么对象将具有
根据目标桶的权限。
要了解有关存储桶和对象的 ACL 的更多信息,您可以访问 this
link。
现在回答您的问题,如果您对两个存储桶都进行了细粒度的访问控制,则下面的命令应该这样做。
gsutil cp -p gs://source_bucket/file_name gs://destination_bucket/new_file_name
您可以在this link中找到对上述命令的引用。
【讨论】:
以上是关于如何在使用 gsutil 保留 ACL 的同时将文件从 Google Cloud Storage 存储桶 1 复制到存储桶 2的主要内容,如果未能解决你的问题,请参考以下文章
将文件从 GCS 复制到 AWS S3 时如何设置 acl?
如何在忽略 .git、.gitignore 等文件的同时执行 gsutil cp -R?
如何从文本语料库中删除特定的单字组,但仍保留该单词的双字组?