簡體   English   中英

使用pkgcloud的Rackspace自定義Skipper適配器

[英]Custom Skipper adapter for Rackspace using pkgcloud

我已經使用pkgcloud在Sails.js中為Skipper啟動了自定義適配器的構建,以將其上傳到Rackspace雲文件,但是我遇到了麻煩。 似乎文件實際上沒有被上傳,並且試圖捕獲錯誤似乎不起作用。 也許我想念一些東西。

我已經在這里發布了我的代碼: https : //github.com/ccoppenbarger/skipper-rackspace

您可能需要在api / adapters / rackspace中檢出它才能使用它。

我現在只在接收機部分工作。 pkgcloud api在這里: 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中可能缺少的內容嗎?

只是我自己回答這個問題,我的代碼在工作,但是問題是我期待一個CDNUri,但又得到了其他東西。 基本上,我的接收器代碼有效。 現在,我只需要完成其他操作,就可以與Skipper一起使用。

找不到源,此示例使用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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM