Skip to content

Instantly share code, notes, and snippets.

@loretoparisi
Last active May 6, 2021 18:58
Show Gist options
  • Save loretoparisi/0058675d13d1115e7b46b1b66433b327 to your computer and use it in GitHub Desktop.
Save loretoparisi/0058675d13d1115e7b46b1b66433b327 to your computer and use it in GitHub Desktop.
S3 Delete Object with VersionId
function deleteVersionedObject(bucket, key, callback) {
var params = {
Bucket: bucket,
Key: key
};
s3.deleteObject(params, function (error, data) {
if (error) {
console.error("S3Dataset delete error key:%s error:%@", params.key, error);
return callback(error);
}
else if (!Util.empty(data) &&
!Util.empty(data) &&
data.DeleteMarker &&
!Util.empty(data.VersionId)) { // object version to delete
var VersionId = data.VersionId;
// The bucket is versioned - https://docs.aws.amazon.com/AmazonS3/latest/dev/DeleteMarker.html
// { "DeleteMarker": true, "VersionId": "azW0.aiZyTSQzjwFe0YkIkGyL.JXJK8y" }
console.log("S3Dataset delete key:%s version:%@", params.key, VersionId);
var params = {
Bucket: params.Bucket,
Key: params.key,
VersionId: VersionId
};
s3.deleteObject(params, function (error, data) {
if (error) {
console.error("S3Dataset delete error key:%s error:%@", params.key, error);
return callback(error);
} else {
return callback(null, data);
}
});
}
else {
var error = new Error('delete error');
console.error("S3Dataset delete error key:%s error:%@", params.key, error);
return callback(error);
}
})
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment