如何通过使用位置 url 从 Node mongo 中删除 s3 对象?

Posted

技术标签:

【中文标题】如何通过使用位置 url 从 Node mongo 中删除 s3 对象?【英文标题】:how can i delete the s3 object from Node mongo by use location url? 【发布时间】:2022-01-17 13:15:26 【问题描述】:

我已将 tha pdf 文件发布到 s3 存储桶,并将文件的返回 Location Url 路径保存在 mongodb 中。所以现在我想通过从 mongodb.im 获取 mongoid 文件位置 url 路径来删除该文件数据。我不明白如何通过 url 路径获取 aws 参数以及如何删除两者?所以请任何人帮助我如何删除这个文件??

router.delete('/:epdfurl',  async function(req, res,next) 
const id = req.params.epdfurl;
   const params2 = 
        Bucket:bucketName2,
        Key:file.booksEpdf[0].originalname,
        Body:file.booksEpdf[0].buffer,
            acl: 'public-read'
        ;
        s3.deleteObject(params2,(error,data)=>
        if(error)
            res.status(500).send("err":error)
        
        const data2=data
            console.log(data2)
        S3Epdf.remove( _id: id )
            .exec()
            .then(result => 
                res.send(result)
            )
            .catch(err => 
                res.send(err)
            )
    )
)

【问题讨论】:

【参考方案1】:

您实际上并不需要在 params2 中传递 Body。但请注意,密钥应该是 s3 存储桶内对象的完整路径。例如:path/to/file/my_file.pdf

【讨论】:

感谢回答。但是如何通过从 mongo 获取位置 URL 来指定 s3 单个对象的路径 现在我在邮递员中遇到这个错误 "message": "有 3 个验证错误:\n* MissingRequiredParameter: 参数中缺少必需的键 'Key'\n* UnexpectedParameter: 在参数中找到意外的键 'location'\n* UnexpectedParameter : 在 params 中发现意外的键 'key'", "code": "MultipleValidationErrors", "errors": [ "message": "Missing required key 'Key' in params", "code": "MissingRequiredParameter", "time ": "2021-12-15T06:07:58.388Z"

以上是关于如何通过使用位置 url 从 Node mongo 中删除 s3 对象?的主要内容,如果未能解决你的问题,请参考以下文章

在 Node 中操作 Mongo 文档

JSONP 支持 node.js 和 mongo

如何从服务器端 express/mongo/mongoose 中的 URL,客户端的 axios/react/redux 中获取参数 ID

将 CSV 文件从 URL 导入 Node.js

node_使用mongo数据库

在mongo中如何通过总记录获取表中记录的当前位置进行分页?