我正在Request failed with status code 400从 b2.uploadFIle()连接
这是我试图做的:
第 1 步:下载backblaze-b2 node.js 库和multer(获取 req.body 中的图像文件)
第 2 步:设置我将如何在 POSTMAN 中调用我的路线。我在请求中附上了 IronMan.png。

第 3 步:设置我的代码:
import B2 from "backblaze-b2";
export const uploadCreationImage = async (
) => {
try {
const b2 = new B2({
applicationKeyId: process.env.backblazeb2ApplicationKeyId,
applicationKey: process.env.backblazeb2ApplicationKey,
});
await b2.authorize(); // must authorize first (authorization lasts 24 hrs)
console.log("I am here");
let response = await b2.getBucket({
bucketName: "bucketName",
});
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, "./uploads");
},
filename: function (req, file, cb) {
cb(null, file.originalname);
},
});
const multerUploader = multer({});
upload(req, res, (err: any) => {
if (err instanceof multer.MulterError) {
return res.sendStatus(INTERNAL_SERVER_ERROR_STATUS);
// A Multer error occurred when uploading.
} else if (err) {
// An unknown error occurred when uploading.
return res.sendStatus(INTERNAL_SERVER_ERROR_STATUS);
}
// console.log("joe", req.file.buffer);
// console.log("biden", req.file);
b2.getUploadUrl({
bucketId: "58dd09e54842aafc7dcd0917",
// ...common arguments (optional)
}).then((response) => {
console.log("getUploadUrl", response.data.uploadUrl , response.data.authorizationToken);
b2.uploadFile({
uploadUrl: response.data.uploadUrl,
uploadAuthToken: response.data.authorizationToken,
fileName: "fileName",
data: req.file.buffer, // this is expecting a Buffer, not an encoded string
onUploadProgress: null,
//onUploadProgress: (event) => {} || null // progress monitoring
// ...common arguments (optional)
}).then((response) => {
console.log('uploadFIle', response);
return res.send({ path: req.file.originalname });
}
// Everything went fine and save document in DB here.
});
});
我使用 multer 从表单请求中获取图像文件,然后将其作为缓冲区传递给 b2.uploadFile 的数据属性。
任何帮助,将不胜感激!