使用node.js,needle,busboy / multer将文件从一台服务器发布到另一台服务器>> [

问题描述 投票:1回答:3
我想将一台小型映像从一台服务器移动到另一台(均为运行节点)。在搜索时,我发现的不够。 This帖子仍未答复。

[开始实验时,我将以下内容写入了第一台服务器:

app.post("/move_img", function(req, res) { console.log("post handled"); fs.readFile(__dirname + "/img_to_move.jpg", function(err, data) { if (err) throw err; console.log(data); needle.post(server2 + "/post_img", { data: data, name : "test.jpg" }, function(result) { console.log(result); res.send("ok"); }); }); });

此部分似乎正在工作,因为我可以将数据写入同一服务器(使用fs.writeFile)来重新创建img。 

现在,当我尝试在其他服务器上处理帖子时,我遇到了问题。

服务器2:

app.post('/post_img', [ multer({ dest: './uploads/images'}), function(req, res) { console.log("body ",req.body) // form fields console.log("files ",req.files) // form files res.send("got it"); }]);

这样,我在文件中得到一个空对象,在正文中得到以下内容:{ 'headers[Content-Type]': 'application/x-www-form-urlencoded', 'headers[Content-Length]': '45009' }

我想我可以使用busboy作为替代,但是我无法使其正常工作。任何建议,教程都将受到欢迎。

我想将一台小型映像从一台服务器移动到另一台(均为运行节点)。在搜索时,我发现的不够。这篇文章仍然没有答案。当我开始实验时,我写了以下...

node.js multer busboy
3个回答
0
投票
我只是从具有功能readFile()的第一台服务器读取文件,然后将其写入具有功能writeFile()的另一台服务器。

0
投票
我通过使用以下代码解决了我的问题,

0
投票
'use strict'; const express = require('express'); const multer= require('multer'); const concat = require('concat-stream'); const request = require('request'); const router = express.Router(); function HttpRelay (opts) {} HttpRelay.prototype._handleFile = function _handleFile (req, file, cb) { file.stream.pipe(concat({ encoding: 'buffer' }, function (data) { const r = request.post('/Endpoint you want to upload file', function (err, resp, body) { if (err) return cb(err); req.relayresponse=body; cb(null, {}); }); const form = r.form(); form.append('uploaded_file', data, { filename: file.originalname, contentType: file.mimetype }); })) }; HttpRelay.prototype._removeFile = function _removeFile (req, file, cb) { console.log('hello'); cb(null); }; const relayUpload = multer({ storage: new HttpRelay() }).any(); router.post('/uploadMsgFile', function(req, res) { relayUpload(req, res, function(err) { res.send(req.relayresponse); }); }); module.exports = router;
© www.soinside.com 2019 - 2024. All rights reserved.