【发布时间】:2021-03-13 17:14:46
【问题描述】:
我正在尝试在 bash 脚本中使用以下命令以递归方式更新文件和文件夹的 x-amz-meta-uid 和 x-amz-meta-gid。
aws s3 cp s3://$SOURCE_CLOUD_BUCKET_PATH s3://$DESTINATION_CLOUD_BUCKET_PATH --recursive --quiet --metadata-directive "REPLACE" --metadata "uid=$USER_UID,gid=$USER_GID"
但是,它似乎只是在更新文件的元数据。我怎样才能让这个也更新目录/文件夹上的元数据?
aws --version
aws-cli/2.0.43 Python/3.7.3 Linux/5.4.0-1029-aws exe/x86_64.ubuntu.18
【问题讨论】:
-
为什么你想在文件夹上设置元数据?在 Amazon S3 中,您无需在给定路径中存储对象时创建文件夹。文件夹神奇地出现了。可以使用“创建文件夹”,它将创建一个与文件夹同名的零长度对象。当您使用 s3fs 之类的工具时,它们可能会针对这个零长度对象存储信息,但它不会影响文件夹的内容。因此,您可能想重新访问为什么要在文件夹本身上设置元数据(实际上并不存在)。
-
感谢您抽出宝贵时间@John Rotenstein。我正在使用 S3 为许多 Wordpress 网站卸载上传媒体。我正在使用 s3fs 将 s3 存储桶挂载为本地文件系统,这使我可以简单地将上传文件夹符号链接到挂载的 s3。它工作得很好,我对当前的设置没有任何问题。我可以使用 chown 很好地设置挂载的 s3 的文件和文件夹的权限,但是,这显然非常慢,因为 s3 不是真正的文件系统。我只是希望有一种更有效的方法来使用 aws cli 设置这些权限。
标签: amazon-web-services amazon-s3 aws-cli