我正在尝试构建托管在 AWS Lambda 上的NodeJS代码,以从 S3存储桶中删除文件。
我的功能如下:
export function main(event, context, callback) {
var bucketInstance = new AWS.S3({
region: 'us-east-1'
});
const data = JSON.parse(JSON.stringify(event.body));
var pathArray = data.attachmentURL.split('/');
let KeyValue = decodeURIComponent(pathArray[3] + '/' + pathArray[4] + '/' + pathArray[5] + '/' + pathArray[6].split('?')[0]);
var params = {
Bucket: 'notes-app-upload26000',
Key: KeyValue
};
bucketInstance.deleteObject(params, function(error, data) {
if (error) {
callback(null, failure({error: error}));
} else if(data){
callback(null, success(data));
}
});
}
有些奇怪的事情……从我的 React 前端代码中调用此函数时:
deleteFileS3(jsonObject){
return API.post("notes", "/delete", {
body: jsonObject
});}
编辑: 这是sucess()和failure()的代码
export function success(body) {
return buildResponse(200, body);
}
export function failure(body) {
return buildResponse(500, body);
}
function buildResponse(statusCode, body) {
return {
statusCode: statusCode,
headers: {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Credentials": true
},
body: JSON.stringify(body)
};
}
我收到 502错误的网关错误,但由于已正确删除文件,因此调用并执行了该功能。
我发现这些错误可能来自代码中的错误,但是文件被删除,所以我迷路了。
有人对为什么这样处理有想法吗?