将 NodeJS 文件创建为对象?
NodeJS File Creation as an Object?
我不想在本地保存文件,但我想创建一个文件对象,然后通过 API 上传。
var request = require("request");
var fs = require("fs");
var arr = [
[4, 56, 7, 3, 345],
[34, 5, 2, 5, 7]
];
var r = requests.post("https://slack.com/api/files.upload", function(err, res,body){
console.log(body)''
}
var form = r.form();
form.append('token', token)
form.append("filename", filename)
form.append('file', new Buffer(arr));
我想知道是否可以不在本地保存文件,而只是将包含数据的文件添加到要通过 API?
提交的表单中
是的,您可以在不保存值的情况下将文件直接通过管道传输到请求中。但是,这取决于数据的来源以及访问方式。
当您执行 fs.createReadStream('<filepath>')
时,您正在创建一个 ReadStream
并作为表单数据的一部分传递给 request
。 Request 然后使用此 Stream 读取文件并将其传递给您刚刚请求的资源。
下面的代码将获取服务器可访问的文件,并通过请求将其传递到所需的端点。
var request = require('request');
var fs = require('fs');
var formData = {
token: token,
filename: filename,
file: fs.createReadStream('<filepath>');
};
request({
method: 'POST',
url: 'https://slack.com/api/files.upload',
form: formData
}, function(err, res, body) {
console.log(JSON.stringify(body, null, 2));
});
我不想在本地保存文件,但我想创建一个文件对象,然后通过 API 上传。
var request = require("request");
var fs = require("fs");
var arr = [
[4, 56, 7, 3, 345],
[34, 5, 2, 5, 7]
];
var r = requests.post("https://slack.com/api/files.upload", function(err, res,body){
console.log(body)''
}
var form = r.form();
form.append('token', token)
form.append("filename", filename)
form.append('file', new Buffer(arr));
我想知道是否可以不在本地保存文件,而只是将包含数据的文件添加到要通过 API?
提交的表单中是的,您可以在不保存值的情况下将文件直接通过管道传输到请求中。但是,这取决于数据的来源以及访问方式。
当您执行 fs.createReadStream('<filepath>')
时,您正在创建一个 ReadStream
并作为表单数据的一部分传递给 request
。 Request 然后使用此 Stream 读取文件并将其传递给您刚刚请求的资源。
下面的代码将获取服务器可访问的文件,并通过请求将其传递到所需的端点。
var request = require('request');
var fs = require('fs');
var formData = {
token: token,
filename: filename,
file: fs.createReadStream('<filepath>');
};
request({
method: 'POST',
url: 'https://slack.com/api/files.upload',
form: formData
}, function(err, res, body) {
console.log(JSON.stringify(body, null, 2));
});