2015-03-24 6 views
1

Я начал сборку адаптера для Skipper в Sails.js, используя pkgcloud для загрузки в облачные файлы Rackspace, но я застрял. Не похоже, что файл действительно загружается, и попытка захвата ошибки не работает. Может быть, я что-то упустил.Пользовательский скипер-адаптер для Rackspace с использованием pkgcloud

Я отправил свой код здесь: https://github.com/ccoppenbarger/skipper-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?

+1

Можете ли вы подтвердить, что вы используете последний пример из нашей помощью документы? https://developer.rackspace.com/docs/cloud-files/getting-started/#upload-objects-to-container также какая версия pkgcloud? –

+0

Да, я использую эту версию ваших документов справки, хотя мне пришлось изменить ее для работы с Skipper. Также, используя 1.2.0 alpha pkgcloud. –

+0

Похоже, что эта строка https://github.com/ccoppenbarger/skipper-rackspace/blob/master/index.js#L98 неверна, это не должно быть 'outs __. Once ('success', function() { }); 'вместо' outs.once ('finish', function() {}); '? –

ответ

0

Чтобы ответить на этот вопрос сам, мой код работал, но проблема в том, что я ожидал один CDNUri, но получал что-то еще. В принципе, мой код приемника работает. Теперь мне просто нужно закончить, чтобы другие могли использовать с Скиппером.

+0

Мне нужно добавить, что мне пришлось удалить репозиторий github из-за некоторых внутренних проблем с клиентом. Публичный репозиторий, скорее всего, будет опубликован в будущем после запуска продукта для адаптера skipper-rackspace. Если кто-то захочет помочь в использовании этого, я был бы рад помочь, но должен быть осторожным из-за использования IP-адресов. –

0

Нет Источник найден, этот пример адаптера, используя 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