我已经使用s3.deleteObject((方法删除了AWS s3 bucket上上传的文件。但作为回应,我没有得到任何错误,但仍然没有删除该文件。我以为这可能是权限问题,但我不是事件获取权限错误,这个文件已经被multerS3上传了。
const aws = require('aws-sdk');
aws.config.update({
accessKeyId: accessKeyId,
secretAccessKey: secretAccessKey
});
const s3 = new aws.S3();
(async () => {
let params = {
Bucket: 'bucket',
Key: 'https://bucket.s3.amazonaws.com/profiles/1648634140824-xyz.png'
};
console.log(`params ->> `, params);
s3.deleteObject(params, function (error, data) {
if (error) {
console.log(`nDeleteImageFromS3 error ->> ${error}`);
return;
} else {
console.log('ns3.deleteObject data ->> ', data);
return;
}
});
})();
在响应中,我得到了下面的日志,并且文件仍然存在于S3 bucket中
s3.deleteObject data ->> { DeleteMarker: true,
VersionId: 'DtD9ccuW2zl1ylWvQTrjJfk3yVa_Ze1A' }
感谢您的进步
请更改关键部分,您不必定义aws s3的域(所有这些都只由aws-sdk
处理(,只需定义该bucket中的文件名。
let params = {
Bucket: 'bucket',
Key: 'profiles/1648634140824-xyz.png'
};