【发布时间】:2015-05-01 18:17:25
【问题描述】:
我想知道是否有办法从 S3 跨区域复制中排除特定文件。我知道前缀选项,但我的存储桶中有一个我不想包含的缓存文件夹。
例子:
我想包括以下内容:
images/production/image1/file.jpg
但我不想包括这个:
images/production/image1/cache/file.jpg
【问题讨论】:
我想知道是否有办法从 S3 跨区域复制中排除特定文件。我知道前缀选项,但我的存储桶中有一个我不想包含的缓存文件夹。
例子:
我想包括以下内容:
images/production/image1/file.jpg
但我不想包括这个:
images/production/image1/cache/file.jpg
【问题讨论】:
Seems 您需要使用对象/存储桶权限才能从复制中排除某些对象:
Amazon S3 将仅复制源存储桶中的对象 存储桶拥有者拥有读取对象和读取 ACL 的权限
和
Amazon S3 不会复制源存储桶中的对象 存储桶所有者没有权限
在单独的存储桶中移动缓存数据可能会更容易。
【讨论】:
我知道这是一篇旧帖子,但我认为可能值得用一个不需要干预权限的答案来更新它。 根据 Amazon 自己的文档 (https://docs.aws.amazon.com/AmazonS3/latest/dev/crr-how-setup.html),您可以选择将在存储桶的复制配置中复制的对象(使用对象名称中的前缀或按标签过滤):
您要复制的对象 - 您可以复制源存储桶或子集中的所有对象。您可以通过在配置中提供键名 > 前缀、一个或多个对象标记或两者来识别子集。例如,如果 >您将跨区域复制配置为仅复制具有键 >name 前缀 Tax/ 的对象,则 Amazon S3 会复制具有诸如 Tax/doc1 或 >Tax/doc2 之类的键的对象,而不是具有键 Legal/ 的对象doc3。如果您同时指定前缀 > 和一个或多个标签,Amazon S3 仅复制具有特定键 >prefix 和标签的对象。
例如,要使用前缀,请在您的 CRR 配置 (https://docs.aws.amazon.com/AmazonS3/latest/dev/crr-add-config.html) 中设置以下规则:
<Rule>
...
<Filter>
<Prefix>key-prefix</Prefix>
</Filter>
【讨论】: