node.js - 为单个对象创建/添加生命周期配置
问题描述
我想使用 aws-sdk Node Js 为 S3 存储桶中的某些对象设置不同的到期日期。为此,我使用了putBucketLifecycleConfiguration
和。putBucketLifecycle
据我所知,我使用不同的前缀(= 对象名称)来设置不同对象的到期日。但是这种方法不是创建新的生命周期,而是取代现有的。
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();
**/
我已经阅读了许多答案和文档,但不知道如何在 s3 存储桶中创建多个生命周期。
在 AWS 文档中:https ://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#putBucketLifecycle-property
其书面“为存储桶创建新的生命周期配置或替换现有的生命周期配置”。那么,我们不能为单个对象创建/添加生命周期吗?
解决方案
您正在尝试等待 a callback
,您需要等待 apromise
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()
根据下面的文档,如果那里还没有存储桶生命周期并替换现有存储桶生命周期,这将创建一个新的存储桶生命周期。所以这是按预期工作的。
据我所知,您需要添加另一条规则
推荐阅读
- swiftui - Xcode 11 beta 4 - 不推荐使用 relativeWidth
- java - 如何在heroku中使用nodejs使jar文件可执行
- python - 对象检测torchvision:IOError:[Errno 2]没有这样的文件或目录:
- excel - 通过vba在excel中插入公式的问题
- powerbi - 将多个 pbix 模型组合到一个存储库中
- python - 如何使用 Telethon 获取 Telegram 机器人的相关信息或描述
- css - SVG 元素被切断
- python - 通过引用类的字典属性来理解副本
- php - 在 Laravel 中显示数据库中的数据的问题
- primeng-datatable - Primeng 标题与正文表不对齐