Использование AWS SDK for Node, почему я не получаю сообщение об ошибке при попытке удалить объект, который не существует (т. Е. Ключ S3 неверен)?Почему S3.deleteObject не работает, если указанный ключ не существует?
Если я указываю несуществующее ведро, с другой стороны, возникает ошибка.
Если рассмотреть следующую программу Node, параметр Key
перечисляет ключ, который не существует в ведре, однако error
аргумент обратного вызова null
:
var aws = require('aws-sdk')
function getSetting(name) {
var value = process.env[name]
if (value == null) {
throw new Error('You must set the environment variable ' + name)
}
return value
}
var s3Client = new aws.S3({
accessKeyId: getSetting('AWSACCESSKEYID'),
secretAccessKey: getSetting('AWSSECRETACCESSKEY'),
region: getSetting('AWSREGION'),
params: {
Bucket: getSetting('S3BUCKET'),
},
})
picturePath = 'nothing/here'
s3Client.deleteObject({
Key: picturePath,
}, function (err, data) {
console.log('Delete object callback:', err)
})
Потому что это то, о чем говорят спецификации, -> * «Удаляет нулевую версию (если она есть) объекта и вставляет маркер удаления, который становится последней версией объекта. null, Amazon S3 не удаляет какие-либо объекты. "*, если объект не существует, он все равно не является ошибкой при вызове' deleteObject' – adeneo
@adeneo Mind, записывая это как ответ? – aknuds1