当前位置: 首页 > 知识库问答 >
问题:

为单个对象创建/添加lifecylce配置

俞新翰
2023-03-14

我想使用aws-sdk节点JS为S3 bucket中的某些对象设置不同的过期日期。为此,我使用了PutBucketLifecycleConfigurationPutBucketLifecycle。据我所知,我使用了不同的前缀(=对象名)来为不同的对象设置过期日期。但这种方法不是在创造新的生命周期,而是在取代现有的生命周期。

const params = {
 Bucket: Env.AWS_BUCKET, /* required */
 LifecycleConfiguration: {
   Rules: [
    {
      Expiration: {
        Days: 1
    }, 
  Filter: {
     Prefix: fullPathOfObject
   }, 
  Status: "Enabled"
  }
 ]
}
};

const putBucketLifecycleConfigRequest = s3.putBucketLifecycleConfiguration(params);

putBucketLifecycleConfigRequest.
on('success', function(response: any) { 
console.log("success");
}).
on('error', function(error: any) {
console.log(error);
}).
on('complete', function(response: any) {
console.log("complete");
}).
send();

/***
const putBucketLifecycleRequest = s3.putBucketLifecycle(params);

putBucketLifecycleRequest.
 on('success', function(response: any) { 
 console.log("success");
 }).
 on('error', function(error: any) {
 console.log("error");
 }).
 on('complete', function(response: any) {
 console.log("complete");
 }).
 send();

**/

在AWS文档中:https://docs.AWS.amazon.com/awsjavascriptsdk/latest/AWS/s3.html#PutBucketLifecycle-property

它写的是“为bucket创建一个新的生命周期配置或替换现有的生命周期配置”。那么,我们不能为单个对象创建/添加lifecylce吗?

共有1个答案

甄胡非
2023-03-14

您试图等待回调,则需要等待promise

const params = {
    Bucket: 'aws-bucket-name' 
    LifecycleConfiguration: {
        Rules: [
            {
                Expiration: {
                    Days: 1,
                },
                Filter: {
                    Prefix: fullPathOfObject,
                },
                Status: 'Enabled',
            },
        ..add another rule here
        ],
    },
}

await s3.putBucketLifecycleConfiguration(params).promise()

根据下面的文档,如果还没有一个bucket生命周期,这将创建一个新的bucket生命周期,并替换现有的生命周期。所以这是预期的工作。

据我所知,你需要再加一条规则

https://docs.aws.amazon.com/awsjavascriptsdk/latest/aws/s3.html#putbucketlifecycleconfiguration-property

 类似资料:
  • 问题内容: 我想在Python中创建一个动态对象(在另一个对象内部),然后向其添加属性。 我试过了: 但这没用。 有任何想法吗? 编辑: 我正在从循环遍历值列表的循环中设置属性,例如 在上面的例子中,我会得到,,。 我使用该函数是因为我不知道如何从循环中进行操作。 如何根据上例中的值设置属性? 问题答案: 您可以使用我古老的Bunch配方,但是如果您不想创建“绑定类”,则Python中已经存在一个

  • 我知道,当我们使用下面给出的字符串文本时,字符串对象是在字符串池中创建的(如果它不存在的话)。 在上述情况下,池中只会创建一个字符串对象。 但是,当我们使用new关键字时,它总是在堆内存中创建一个新的String对象(即使String池中有一个) 在这里,我有一个困惑,关于在下面的情况下将创建多少对象,以及在哪里(池或堆内存)。

  • 我对RxJS很陌生,所以如果这个问题已经得到回答,我提前道歉。 我有一个Angular 2应用程序,在其中一个组件中有一个普通对象。我将UI绑定到这个对象。我想做的是能够捕获对这个对象的所有更改,无论它们来自代码还是来自用户更改其中一个字段。 我正在查看可观察对象,但似乎只有通过Emit方法推送新对象时,订阅者才能接收通知。例如,在属性绑定到输入字段的情况下,这将如何工作? 有更好的方法吗? 这是

  • 注意:在 Dreamweaver Creative Cloud 更新中已增强了对 HTML 表单元素的支持。有关信息,请参阅对表单元素的增强 HTML5 支持。 关于 Web 表单 当访问者在 Web 浏览器中显示的 Web 表单中输入信息,然后单击提交按钮时,这些信息将被发送到服务器,服务器中的服务器端脚本或应用程序会对这些信息进行处理。服务器向用户(或客户端)发回所处理的信息或基于该表单内容执

  • JavaScript对每个创建的对象都会设置一个原型,指向它的原型对象。 当我们用obj.xxx访问一个对象的属性时,JavaScript引擎先在当前对象上查找该属性,如果没有找到,就到其原型对象上找,如果还没有找到,就一直上溯到Object.prototype对象,最后,如果还没有找到,就只能返回undefined。 例如,创建一个Array对象: var arr = [1, 2, 3]; 其

  • 所以我不确定是0还是2。 如果有人知道请告诉我。