NodeJS 将 base64 转换为八位字节流
NodeJS convert base64 to octet-stream
我正在尝试访问一个接收八位字节流作为参数的 API。
为此,我想先将 base64 字符串转换为八位字节流。
在 javascript 中,我使用默认的 Blob 类型实现了 it。
但是在 NodeJS 中,我无法使其成为 API.
会使用的完美格式
我也尝试过将其转换为 Buffer 和 ArrayBuffers,但没有用。
我也试过 cross-blob 库,但它仍然没有被转换成我进入 javaScript.
时的格式
试试这个:
const fetch = require("node-fetch")
const fs = require('fs');
let subscriptionKey = '<your key here>';
let endpoint = '<endpoint url of your vision serice>';
let filePath = '<path of your file>';
//code below is what you are looking for
const base64 = fs.readFileSync(filePath, 'base64')
const data = Buffer.from(base64, 'base64')
if (!subscriptionKey) { throw new Error('Set your environment variables for your subscription key and endpoint.'); }
var uriBase = endpoint + "vision/v2.1/ocr"; //you define your API here , in this case I use ocr
fetch(uriBase + "?" + {
"language": "unk",
"detectOrientation": "true",
},
{
method: 'POST',
headers:
{
'Content-Type': 'application/octet-stream',
'Ocp-Apim-Subscription-Key': subscriptionKey,
},
body: data, //post binary data directly, it applys to all post methods which data type is octet-stream in vision serice API
}).then((response) => response.json()).then((data) =>
{
console.log(JSON.stringify(data, null, 2));
}).catch((error) =>
{
console.log(error);
});
结果:
希望对您有所帮助。
我正在尝试访问一个接收八位字节流作为参数的 API。 为此,我想先将 base64 字符串转换为八位字节流。 在 javascript 中,我使用默认的 Blob 类型实现了 it。 但是在 NodeJS 中,我无法使其成为 API.
会使用的完美格式我也尝试过将其转换为 Buffer 和 ArrayBuffers,但没有用。 我也试过 cross-blob 库,但它仍然没有被转换成我进入 javaScript.
时的格式试试这个:
const fetch = require("node-fetch")
const fs = require('fs');
let subscriptionKey = '<your key here>';
let endpoint = '<endpoint url of your vision serice>';
let filePath = '<path of your file>';
//code below is what you are looking for
const base64 = fs.readFileSync(filePath, 'base64')
const data = Buffer.from(base64, 'base64')
if (!subscriptionKey) { throw new Error('Set your environment variables for your subscription key and endpoint.'); }
var uriBase = endpoint + "vision/v2.1/ocr"; //you define your API here , in this case I use ocr
fetch(uriBase + "?" + {
"language": "unk",
"detectOrientation": "true",
},
{
method: 'POST',
headers:
{
'Content-Type': 'application/octet-stream',
'Ocp-Apim-Subscription-Key': subscriptionKey,
},
body: data, //post binary data directly, it applys to all post methods which data type is octet-stream in vision serice API
}).then((response) => response.json()).then((data) =>
{
console.log(JSON.stringify(data, null, 2));
}).catch((error) =>
{
console.log(error);
});
结果:
希望对您有所帮助。