从S3跨区域复制中排除特定文件

时间:2015-05-01 18:17:25

标签: amazon-s3 amazon s3cmd

我想知道是否有办法从S3跨区域复制中排除特定文件。我知道前缀选项,但我在我的存储桶中有一个我不想包含的缓存文件夹。

示例:

我想包括以下内容:

图像/生产/ image1的/ file.jpg

但我不想包括这个:

图像/生产/ image1的/缓存/ file.jpg

2 个答案:

答案 0 :(得分:1)

Seems您需要使用对象/存储桶权限才能从复制中排除某些对象:

  

Amazon S3将仅复制源存储桶中的对象   存储桶拥有者有权读取对象和读取ACL

  

Amazon S3不会复制源存储桶中的对象   存储桶拥有者没有权限

在单独的存储桶中移动缓存数据可能会更容易。

答案 1 :(得分:0)

我知道这是一篇旧文章,但我认为值得用不需要干预权限的答案来更新它。  根据Amazon自己的文档(https://docs.aws.amazon.com/AmazonS3/latest/dev/crr-how-setup.html),您可以选择要在存储桶的复制配置中复制的对象(使用对象名称中的前缀或按标签过滤):

  

您要复制的对象-您可以复制>源存储桶或子集中的所有对象。您可以通过在配置中提供键名>前缀,一个或多个对象标签或同时提供二者来标识子集。例如,如果>您配置跨区域复制以仅复制键>名称前缀为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>