Пользовательский адаптер Skipper для Rackspace с использованием pkgcloud
Я начал сборку специального адаптера для Skipper в Sails.js, используя pkgcloud для загрузки в Rackspace облачные файлы, но я застрял. Похоже, что файл на самом деле не загружается, и попытка зафиксировать ошибку, похоже, не работает. Может быть, я что-то упустил.
Я разместил свой код здесь: https://github.com/ccoppenbarger/skipper-rackspace
Вы должны проверить это в api / adapters / rackspace, чтобы использовать его.
Я сейчас работаю только над приемной частью. API pkgcloud находится здесь: https://developer.rackspace.com/docs/cloud-files/getting-started/
Мой код контроллера выглядит следующим образом:
upload : function(req, res){
req.file('file').upload({
adapter: require('../adapters/rackspace/index'),
username: sails.config.rackspace.username,
apiKey: sails.config.rackspace.apiKey,
region: sails.config.rackspace.region,
container: sails.config.rackspace.container
}, function whenDone(err, uploadedFiles) {
if (err) return res.negotiate(err);
else return res.ok({
files: uploadedFiles,
textParams: req.params.all()
});
});
},
Может кто-нибудь взглянуть и посмотреть, чего мне не хватает в index.js?
2 ответа
Просто чтобы ответить на этот вопрос сам, мой код работал, но проблема заключалась в том, что я ожидал один CDNUri, но получал что-то другое. По сути, мой код получателя работает. Теперь мне просто нужно закончить, чтобы другие тоже могли использовать шкипер.
Источник не найден, этот пример использования адаптера pkgcloud
function pkgCloudReceiver(opts){
var receiver__ = Writable({
objectMode: true
});
var client = getClientStorage(options);
receiver__.once('error', function(err){
//console.log('once err',err);
});
receiver__._write = function(__newFile, encoding, next){
options.tmpdir = options.tmpdir || path.resolve(process.cwd(), '.tmp/pkgcloud-temp');
var file = {
container: options.container,
remote: __newFile.fd,
contentType: mime.lookup(__newFile.fd),
};
writeStream = client.upload(file);
writeStream.on('error', function(err){
receiver__.emit('error', err);
});
writeStream.on('progress', function(data){
//console.log('progress', data);
});
writeStream.on('success', function(data){
next();
});
__newFile.pipe(writeStream);
};
return receiver__;
};
полный адаптер: https://github.com/urielaero/skipper-pkgcloud