首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >亚马逊网络服务S3 putBucketLifecycleConfiguration超智

亚马逊网络服务S3 putBucketLifecycleConfiguration超智
EN

Stack Overflow用户
提问于 2021-02-09 02:12:14
回答 1查看 63关注 0票数 1

请考虑以下几点:

代码语言:javascript
运行
复制
const prefixes = ['prefix1', 'prefix2']
for (let documentPrefix of prefixes) {
    const params = {
        Bucket: process.env.DOCUMENT_BUCKET,
        LifecycleConfiguration: {
          Rules: [
            {
              Expiration: { Days: process.env.NUMBER_OF_DAYS },
              ID: documentPrefix,
              Status: 'Enabled',
              Filter: {
                Prefix: `${documentPrefix}/`,
              },
              NoncurrentVersionExpiration: {
                NoncurrentDays: process.env.NUMBER_OF_DAYS,
              },
            },
          ],
        },
      };

      console.log(`Creating lifecycle rule with params: ${JSON.stringify(params)}`);
      await s3.putBucketLifecycleConfiguration(params).promise();
}

我希望在我的存储桶中为数组prefixes中的每一项都有一个生命周期规则,但实际上,数组中的最后一项只有一个规则。

有谁能解释一下原因吗?每次迭代的ID都是不同的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-09 06:01:57

这是因为putBucketLifecycleConfiguration是一个PUT操作,它通过创建新配置来覆盖以前的生命周期设置。

因此,修复方法是一次性发送所有需要的规则

代码语言:javascript
运行
复制
const AWS = require('aws-sdk');
const s3 = new AWS.S3();
    
const prefixes = ['prefix1', 'prefix2'];
    
const rules = prefixes.map(documentPrefix => {
    return {
        Expiration: { Days: process.env.NUMBER_OF_DAYS },
        ID: documentPrefix,
        Status: 'Enabled',
        Filter: {
            Prefix: `${documentPrefix}`,
        },
        NoncurrentVersionExpiration: {
            NoncurrentDays: process.env.NUMBER_OF_DAYS,
        }
     }
});
    
async function run() {
    const params = {
        Bucket: process.env.DOCUMENT_BUCKET,
        LifecycleConfiguration: {
            Rules: rules
        },
    };
    console.log(`Creating lifecycle rule with params: ${JSON.stringify(params)}`);
    await s3.putBucketLifecycleConfiguration(params).promise();
}

run();

结果,最终应用了两个规则(s3存储桶>管理)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66107067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档