【发布时间】:2020-03-16 23:03:56
【问题描述】:
我有一个启用了版本控制的 S3 存储桶。每当我使用 javascript 的 aws sdk 进行deleteObject 调用时,它都会用delete marker 标记对象。如documentation 中所述,要永久删除 s3 对象,应指定“VersionId”。
来自 S3 documentation 进行删除调用:
var params = {
Bucket: 'STRING_VALUE', /* required */
Key: 'STRING_VALUE', /* required */
BypassGovernanceRetention: true || false,
MFA: 'STRING_VALUE',
RequestPayer: requester,
VersionId: 'STRING_VALUE'
};
s3.deleteObject(params, function(err, data) {
i.f (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
我想(永久)删除对象的最新版本。我知道,为了这样做:
- 需要获取版本。
- 为具有“VersionId”的版本调用“deleteObject”。
上述方法需要 2 个 API 调用(第一个用于获取版本,第二个用于删除对象版本)我已经经历了几个解决方案,它们具有与上面指定的相同的方法。
我正在尝试将 API 调用减少到一个。
- 有没有一种方法可以在请求的“VersionId”参数中为最新版本指定占位符,以便 aws 将其解析为最新版本?
- 还有其他方法需要一个 API 调用吗?
【问题讨论】:
标签: javascript node.js amazon-web-services amazon-s3 aws-sdk