Я пытаюсь выяснить, как сделать эквивалент fs.exists() на S3.node.js Amazon s3 как проверить файл существует
Мне удалось получить содержимое ведра, но я не могу понять, как спросить S3, если в ведре существует определенный файл (я не хочу загружать весь список файлов и проверять клиентскую сторону, потому что слишком много файлов).
Для справки: AWS2JS documentation on S3.GET
var s3 = require('aws2js').load('s3', appConfig.awsAccessKeyId, appConfig.awsSecretAccessKey);
s3.setBucket(appConfig.awsBucketName);
var folder = encodeURI('reports');
var url = '?prefix=' + folder;
s3.get(url,{Contents: null, Key: 'reports/emot_cat_r1180341142.png'},'xml', function (error, data) {
console.log("Error",error);
console.log("Data",data);
true.should.be.true;
done();
});
Выходные
{Имя: 'umusergen' Префикс: 'отчеты', Маркер: {}, MaxKeys: '1000', IsTruncated: 'false', Содержание: [{Ключ: 'reports /', LastModified: '2013-06-16T17: 44: 25.000Z', ETag: '"d41d8cd98f00b204e9800998ecf8427e"', Размер: '0', Владелец: [Объект], : Класс складирования 'STANDARD'}, { Key: 'Отчеты/emot_cat_r1180341142.png', LastModified: '2013-06-16T23: 18: 59.000Z', ETag: '0b04aa9146d36a447019b1aa94be7eb3 "', Размер:«26374 ' Владелец: [Объект], Класс складирования: 'СТАНДАРТ'}, { Ключ: 'отчеты/polarity_r1180341142.png', LastModified: '2013-06-16T23: 19: 00.000Z', ETag:'» 22fd521e0a5e858040082d0d47078532" ' Размер: '23091', Владелец: [Object], Класс складирования: 'STANDARD'}, { Key: 'отчеты/wordcloud_r1180341142.png', LastModified:' 2013-06-16T23: 19: 07.000Z ', ETag: '9f7ee9d2fdce5f460b2c42444edd6efc "', Размер: '167164', Владелец: [Object], Класс складирования: 'STANDARD'}], '@': {XMLNS: {XMLNS: 'http://s3.amazonaws.com/doc/2006-03-01/'}}}
«{Содержимое: null, Key: [[путь/имя файла]»} - это моя попытка интерпретировать приведенные выше инструкции API.
Как вы можете видеть, он просто перечисляет содержимое ведра, но мне нужен вызов API для проверки наличия определенного файла.
Может ли кто-нибудь помочь? Я довольно новичок в этом.
Фантастический сервис сэр! Благодаря! – metalaureate
Знаете ли вы, существует ли проблема с awsjs в Mocha? Когда я запускаю свой код снаружи, описываю (it()), он отлично работает. Но когда я завершаю код в тесте, ни один из обратных вызовов s3 не возвращается. Я добавлю этот отдельный вопрос. – metalaureate
Я задал следующий вопрос: http://stackoverflow.com/questions/17151467/node-js-awsjs-s3-head-function-does-not-return-in-mocha-test-framework – metalaureate