javascript - 从 aws 中删除多个图像
问题描述
这是我用于从 aws 中删除多个图像的代码
AWS.config.update({
accessKeyId: process.env.ACCESS_KEY,
secretAccessKey: process.env.SECRET_ACCESS_KEY
})
const s3 = new AWS.S3({
params: {
Bucket: process.env.BUCKET
}
})
这是我从前端传递来删除图像的数组
const array = [
'https://s3.amazonaws.com/lgfit/picture/5b55a7a6c316686bbbbc8120.jpg',
'https://s3.amazonaws.com/lgfit/picture/5b4c3ca0097c915e38d0d21515-09-2018_12_13_48.jpg'
]
在这里,我在deleteObject
aws中传递图像
var options = {
Bucket: process.env.BUCKET,
Delete: {
Objects: [{
Key: array
}],
}
}
return new Bluebird((resolve) => {
s3.deleteObject(options, function (err,data){
console.log(err)
console.log(data)
})
})
我收到以下错误
{ MultipleValidationErrors: There were 2 validation errors:
* MissingRequiredParameter: Missing required key 'Key' in params
* UnexpectedParameter: Unexpected key 'Delete' found in params
at ParamValidator.validate (/home/user/ashish/FitnessApp/Fitness-New-one/fitnessapp-backend/node_modules/aws-sdk/lib/param_validator.js:40:28)
at Request.VALIDATE_PARAMETERS (/home/user/ashish/FitnessApp/Fitness-New-one/fitnessapp-backend/node_modules/aws-sdk/lib/event_listeners.js:108:42
请帮助我在这里做错了什么!!!
解决方案
您的代码中有两个错误。
- 您使用了错误的 SDK 方法。
- 您以错误的格式传递参数。
deleteObjects
是删除多个对象并
Delete.Objects
期望的方法,key:string
但是您正在提供,key:array
因此您需要从数组中生成对象。我假设那lgfit
是你的桶。
const params = {
Bucket: process.env.BUCKET,
Delete: {
Objects: [{
Key: "picture/5b55a7a6c316686bbbbc8120.jpg"
},
{
Key: "picture/5b4c3ca0097c915e38d0d21515-09-2018_12_13_48.jpg"
}
],
Quiet: false
}
};
return new Bluebird((resolve) => {
s3.deleteObjects(params, function (err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
/*
data = {
Deleted: [
{
DeleteMarker: true,
DeleteMarkerVersionId: "A._w1z6EFiCF5uhtQMDal9JDkID9tQ7F",
Key: "objectkey1"
},
{
DeleteMarker: true,
DeleteMarkerVersionId: "iOd_ORxhkKe_e8G8_oSGxt2PjsCZKlkt",
Key: "objectkey2"
}
]
}
*/
});
});
推荐阅读
- c# - 在 WPF 中使用 webview 加载本地视频会使其锁定
- reactjs - 反应错误:看起来您正在将几个商店增强器传递给 createStore()
- python - 从子类对象访问超类成员的 Python 方法
- python - 如何获取 mongoDB 项目的 json 数组?(ObjectID 不可序列化)
- java - 正则表达式匹配在第 1 组中出错
- c++ - 如何授予对 vscode 的正确访问权限,以便在我运行 c++ 代码时它不会每次都要求访问文档?
- delphi - THTTPClient 响应后关闭 TCP 连接(避免 TIME_WAIT 连接)
- vba - 在 Word 中查找文本
- c++ - 为什么系统函数在 C++ 中总是返回一个移位的退出状态?
- mysql - 在 mysql 中创建过程需要帮助