Nodejs上传图片到其他服务器API

3

我想知道是否有人可以帮忙解决以下问题。

我有一个基于node/express的API,用于上传图片。

服务器1

var upload = multer({ dest: 'uploads/'})
app.post('/api/upload', upload.single('file'), function(req, res, next) {

if (req.file && req.file.path) { 
   //used to have imgur upload
   //imgur.uploadFile(req.file.path)
   //           .then(function (json) {
   //});
}
});

服务器2

我有一个用于图片上传的PHP Api,使用了pictshare进行自托管。我想通过将上传重定向到PHP Api服务器来将文件上传重定向到新的Api。

尝试过multermultipartyneedlerequest和其他各种方法......但是总是无法解决问题。

是否有办法直接将multer指向新的目标?

文件被保存在uploads/文件夹中,也许更好的方法是上传/将该文件直接上传到新服务器并从服务器2返回新url?

寻找用于上传图像的流水线方案,但没有太多进展......

注意:移动应用程序正在使用server1 api,因此如果可以从服务器端处理,则不希望发布应用程序更新。

1个回答

0

要上传文件(图像或其他文件),您首先需要将其保存在驱动器中(或者在内存中,但我将首先处理驱动器情况)。然后,您可以读取它并发送它。

接收文件的API通常用于接收表单。通常,它们希望接收一个表单,其中附件作为file字段出现。

在这里,您可以看到一个工作示例,使用Node的'superagent'库将我驱动器中的现有文件上传到外部API。

const
  fs = require('fs'),
  agent = require('superagent');
  const stream = fs.createReadStream('path/to/downloaded/file');
 agent.post(`urlOfApi/uploadFileEndpoint`)
  .type('form')
  .attach('file', stream.path);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接