如何通过使用位置 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 对象?的主要内容,如果未能解决你的问题,请参考以下文章
如何从服务器端 express/mongo/mongoose 中的 URL,客户端的 axios/react/redux 中获取参数 ID