我有一个程序模型,程序有一个图像属性,我在创建程序时使用multers3上传它。
我现在面临的挑战是,当我删除程序时,我的本地机器上的所有东西都被删除了,但我意识到文件(图像)仍然存在于我的Aws s3控制台上。如何删除我的数据库和亚马逊s3上的文件?
Here are my Program routes
这就是我如何删除我的程序
router.delete("/:id/delete", function (req, res) {
const ObjectId = mongoose.Types.ObjectId;
let query = { _id: new ObjectId(req.params.id) };
Program.deleteOne(query, function (err) {
if (err) {
console.log(err);
}
res.send("Success");
});
});这就是我创建程序的方式。
router.post("/create", upload.single("cover"), async (req, res, next) => {
const fileName = req.file != null ? req.file.filename : null;
const program = new Program({
programtype: req.body.programtype,
title: req.body.title,
description: req.body.description,
programImage: req.file.location,
});
try {
console.log(program);
const programs = await program.save();
res.redirect("/programs");
} catch {
if (program.programImage != null) {
removeprogramImage(program.programImage);
}
res.render("programs/new");
}
});发布于 2021-07-23 23:25:31
我有完全相同的问题,并通过给定的代码修复,
s3.deleteObjects(
{
Bucket: 'uploads-images',
Delete: {
Objects: [{ Key: 'product-images/slider-image.jpg' }],
Quiet: false,
},
},
function (err, data) {
if (err) console.log('err ==>', err);
console.log('delete successfully', data);
return res.status(200).json(data);
}
);这对我来说很有效。
https://stackoverflow.com/questions/65124827
复制相似问题