Node.js 如何删除amazon s3上的文件映像

Node.js 如何删除amazon s3上的文件映像,node.js,express,multer-s3,Node.js,Express,Multer S3,我有一个程序模型,程序有一个图像属性,在创建程序时使用multers3上传 我现在面临的挑战是,当我删除程序时,本地机器上的所有内容都会被删除,但我意识到该文件(图像)仍然存在于我的Aws s3控制台上。如何在数据库和AmazonS3上删除文件 以下是我的节目路线 这就是我删除程序的方式 router.delete("/:id/delete", function (req, res) { const ObjectId = mongoose.Types.ObjectId;

我有一个程序模型,程序有一个图像属性,在创建程序时使用multers3上传

我现在面临的挑战是,当我删除程序时,本地机器上的所有内容都会被删除,但我意识到该文件(图像)仍然存在于我的Aws s3控制台上。如何在数据库和AmazonS3上删除文件

以下是我的节目路线

这就是我删除程序的方式

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");
 }
});

查看Multer-s3回购协议,我找不到任何提到从s3中删除的内容。源代码中有,但是,我不知道如何使用它

您可以通过
deleteObject
直接尝试使用AWS SDK:

const s3 = new aws.S3({
    accessKeyId: 'access-key-id',
    secretAccessKey: 'access-key',
    Bucket: 'bucket-name',
});

s3.deleteObject({ Bucket: 'bucket-name', Key: 'image.jpg' }, (err, data) => {
    console.error(err);
    console.log(data);
});