是否可以在 2 个存储桶之间复制特定的 S3 文件夹?

Is it possible to replicate a specific S3 folder between 2 buckets?

有谁知道是否可以使用 AWS S3 复制功能在 2 个存储桶之间只复制一个存储桶的文件夹?

P.S.: 我不想复制整个桶,只复制桶中的一个文件夹。

如果可能的话,我需要添加什么配置来过滤复制中的那个文件夹?

是的,您可以使用跨区域复制功能执行此操作。您可以在同一区域或不同区域复制对象。新存储桶中的复制对象将保留其原始存储class、对象名称和对象权限。 但是,您可以将所有者更改为目标存储桶的新所有者。

尽管如此,此功能还是有缺点:-

  • 您不能复制源存储桶中存在的对象 在使用 CRR 创建复制规则之前。只有那些 在可以创建复制规则后创建。
  • 您不能在复制中使用 SSE-C 加密。

您可以使用同步命令执行此操作。

aws s3 sync s3://SOURCE_BUCKET_NAME s3://NEW_BUCKET_NAME

您必须授予目标账户执行跨账户复制的权限。

。 Amazon S3 的复制功能允许您将前缀(例如,文件夹)级别的对象从一个 S3 存储桶复制到同一区域或跨区域的另一个存储桶。

来自AWS S3 Replication documentation,

The objects that you want to replicate — You can replicate all of the objects in the source bucket or a subset. You identify a subset by providing a key name prefix, one or more object tags, or both in the configuration.

For example, if you configure a replication rule to replicate only objects with the key name prefix Tax/, Amazon S3 replicates objects with keys such as Tax/doc1 or Tax/doc2. But it doesn't replicate an object with the key Legal/doc3. If you specify both prefix and one or more tags, Amazon S3 replicates only objects having the specific key prefix and tags.

也参考这个guide on how to enable replication using AWS console. Step 4 talks about enabling replication at prefix level. The same can be done via Cloudformation and CLI