0

所以我想使用 npm 请求模块将图像上传到 Tumblr API。熟悉 facebook 和 twitter API,这些请求的工作方式如下:

对于 Facebook:
- 创建一个读取流: var media = fs.createReadStrem('imgpath');
- 使用访问数据和 uri 集发出发布请求,并且:

options.formData = {
  source: media,
  caption: "test"
};

对于 Twitter:
- 创建 readstream
- 将图像上传到 Twitter:

options.formData = {
  media: media
};

这完美无瑕。
但是现在使用 Tumblr,我需要先将图像编码为“数组(URL 编码的二进制内容)”

所以我的问题是。我如何对其进行编码并将其以正确的格式提供给 npm 请求模块。为此,我首先需要使用fs.readFileSync加载图像,但是否可以像使用 FB 和 Twitter 一样将图像作为 readStream 上传到 Tumblr?

这是我尝试过的事情之一:

var img = fs.readFileSync('img');  
options.form = { 
  type: 'photo',
  data: [img.toString('binary')]
}  

这给了我一个 400:上传照片时出错。

我还研究了tumblrwks,它有效,但我真的很想通过request完成这件事

谢谢!:)

4

1 回答 1

0

如果您被限制使用请求,则可以使用以下代码将数据转换为十六进制

encodeToHex = require('./encode-image').encodeToHex;
var photo = fs.readFileSync('./test/img/P1010486.jpg');

options.form = { 
  type: 'photo',
  data: encodeToHex(photo),
}  

tumblrwks 自己使用 encode-image

于 2015-07-14T11:07:49.817 回答