1

使用 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

普遍关注

如何像 Java 一样使用 NodeJS 设置多个转换?

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);

其次是 - https://docs.aws.amazon.com/AmazonS3/latest/userguide/how-to-set-lifecycle-configuration-intro.html

任何帮助都会很棒。

4

1 回答 1

0

我们需要调用ArrayputBucketLifecycle并将其传递给. 类似于CLI 示例RulesLifecycleConfiguration

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);
  }
);
于 2021-02-20T07:58:01.410 回答