所以我想用npm请求模块将图像上传到Tumblr API。 熟悉facebook和twitter API,这些请求的工作原理如下:
对于Facebook:
- 创建一个读取流:var media = fs.createReadStrem(' imgpath');
- 发出带有访问数据和uri设置的帖子请求,并且:
options.formData = {
source: media,
caption: "test"
};
对于Twitter:
- 创建读取流
- 将图片上传到twitter:
options.formData = {
media: media
};
这完美无瑕 但是现在使用Tumblr,我需要先将图像编码为"数组(URL编码的二进制内容)" 。
所以我的问题是。如何对其进行编码并将其以正确的格式提供给npm请求模块。为此,我首先需要使用 fs.readFileSync 加载图像,但是可以将图像作为readStream上传到Tumblr,就像我使用FB和Twitter一样吗?
这是我尝试过的一件事:
var img = fs.readFileSync('img');
options.form = {
type: 'photo',
data: [img.toString('binary')]
}
这给了我400:上传照片时出错。
我也研究了tumblrwks,它有效,但我真的希望用request完成这项工作
谢谢! :)
答案 0 :(得分:0)
如果您被限制使用请求,则可以使用以下代码将数据转换为十六进制
encodeToHex = require('./encode-image').encodeToHex;
var photo = fs.readFileSync('./test/img/P1010486.jpg');
options.form = {
type: 'photo',
data: encodeToHex(photo),
}
encode-image由tumblrwks iteself
使用