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

使用NodeJS创建AWS S3对象生命周期

秦权
2023-03-14

使用NodeJS创建AWS S3对象生命周期。

我想通过使用NodeJS的API创建S3对象生命周期。当我看到文档时,AWS使用Java只提供了多个对象生命周期。

https://docs.aws.amazon.com/amazons3/latest/userguide/how-to-set-lifecycle-configuration-intro.html

我也查了这个网址-

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

根系关注

BucketLifecycleConfiguration.Rule rule2 = new BucketLifecycleConfiguration.Rule()
                .withId("Archive and then delete rule")
                .withFilter(new LifecycleFilter(new LifecycleTagPredicate(new Tag("archive", "true"))))
                .addTransition(new Transition().withDays(30).withStorageClass(StorageClass.StandardInfrequentAccess))
                .addTransition(new Transition().withDays(365).withStorageClass(StorageClass.Glacier))
                .withExpirationInDays(3650)
                .withStatus(BucketLifecycleConfiguration.ENABLED);

共有1个答案

贲宜春
2023-03-14

我们需要调用PutBucketLifecycle并将Rules数组传递给LifecycleConfiguration。类似于CLI示例

s3.putBucketLifecycle(
  {
    Bucket: "sample-temp-bucket",
    LifecycleConfiguration: {
      Rules: [
        {
          Filter: {
            And: {
              Prefix: "myprefix",
              Tags: [
                {
                  Value: "mytagvalue1",
                  Key: "mytagkey1",
                },
                {
                  Value: "mytagvalue2",
                  Key: "mytagkey2",
                },
              ],
            },
          },
          Status: "Enabled",
          Expiration: {
            Days: 1,
          },
        },
        {
          Filter: {
            Prefix: "documents/",
          },
          Status: "Enabled",
          Transitions: [
            {
              Days: 365,
              StorageClass: "GLACIER",
            },
          ],
          Expiration: {
            Days: 3650,
          },
          ID: "ExampleRule",
        },
      ],
    },
  },
  (error, result) => {
    if (error) console.log("error", error);
    if (result) console.log("result", result);
  }
);
 类似资料:
  • 每个请求对象只在一个 servlet 的 service 方法的作用域内,或过滤器的 doFilter 方法的作用域内有效,除非该组件启用了异步处理并且调用了请求对象的 startAsync 方法。在发生异步处理的情况下,请求对象一直有效,直到调用 AsyncContext 的 complete 方法。容器通常会重复利用请求对象,以避免创建请求对象而产生的性能开销。开发人员必须注意的是,不建议在上

  • 每个响应对象只有当在 servlet 的 service 方法的范围内或在 filter 的 doFilter 方法范围内是有效的,除非该组件关联的请求对象已经开启异步处理。如果相关的请求已经启动异步处理,那么直到AsyncContext 的 complete 方法被调用,请求对象一直有效。为了避免响应对象创建的性能开销,容器通常回收响应对象。在相关的请求的startAsync 还没有调用时,开发

  • 一旦一个类被装载、连接和初始化,它就随时可以被使用。程序可以访问它的静态字段,调用它的静态方法,或者创建它的实例。作为Java程序员有必要了解Java对象的生命周期。 类实例化 在Java程序中,类可以被明确或隐含地实例化。明确的实例化类有四种途径: 明确调用new。 调用Class或者java.lang.reflect.Constructor对象的newInstance方法。 调用任何现有对象的

  • C 没有GC机制,当C对象被导出到JavaScript环境后,必须使用某种方法进行对象生命周期管理,以彻底杜绝野指针、内存泄漏,引用计数无疑是最常用的方法。 4.4.1 引用计数基类 对象生命周期管理需要解决的问题是:当一个对象可能在多个地方被引用时,如何决定何时将其销毁。引用计数法解决这一问题的途径非常简单: 每个对象自带一个初值为0的引用计数; 对象的每个使用者,在获得一个对象的引用时,将其引

  • 掌握构建生命周期 作为一个构建脚本的开发者,你不应该局限于编写任务动作或者配置逻辑,有时候你想在指定的生命周期事件发生的时候执行一段代码。生命周期事件可以在指定的生命周期之前、之中或者之后发生,在执行阶段之后发生的生命周期事件就该是构建的完成了。 假设你希望在构建失败时能够在开发阶段尽早得到反馈,给构建生命周期事件添加回调有两种方法:一是通过闭包,二是实现 Gradle API 的一个监听接口,G

  • 我试图使用container:start命令运行带有sbt的scalatra,但我得到“Assertion failed:No lifecycle class found!”消息,这是我用“Last Container:Start”获得的完整堆栈跟踪: 这是我的生命周期文件,名为:“ScalatrabootStrap.scala”,它的内容是: