Получение ошибки «Ошибка: подключение ECONNREFUSED 127.0.0.1:80» при отправке изображения в backbalze b2

#node.js #backblaze

Вопрос:

Поэтому я уже около трех дней пытаюсь реализовать загрузку изображений в корзину backblaze b2. Я боролся с получением данных, но, наверное, получаю ошибку об отказе в подключении. Он возвращает код ошибки 504, и я попытался исправить это, отправив только изображение, не преобразуя его в данные base64. Я мало что понимаю в данных base64, поэтому я думаю, что ошибка может быть вызвана данными base64. У меня также нет большого опыта работы с backblaze-b2, и я не так давно нашел пакет npm «backblaze-b2». Вот код:

 const B2 = require('backblaze-b2'); const fs = require('fs');  export const uploadImage = async (req, res) =gt; {  try {  const b2 = new B2({  accountId: process.env.BACKBLAZE_ACCOUNT_ID,  applicationKey: process.env.BACKBLAZE_APPLICATION_MASTER_KEY,  });   await b2.authorize();   // console.log(req.body);   const { image } = req.body;   if (!image) return res.status(400).send('No image found!');   // prepare the image  const base64Data = new Buffer.from(  image.replace(/^data:image/w ;base64,/,""),  'base64'  );   const handleImage = async () =gt; {  try {  let uploadUrl = await b2.getUploadUrl({  bucketId: process.env.BACKBLAZE_BUCKET_ID,  });   // console.log('Is this not working?', uploadUrl);   const data = b2.uploadFile({  uploadUrl: uploadUrl.data.bucketId,  uploadAuthToken: uploadUrl.data.authorizationToken,  fileName: 'Pepe', //lt;-- TODO: Fix later  data: base64Data, // lt;-- Figure out what to pass in  onUploadProgress: (e) =gt; null,  });   console.log(data);  res.send(data);  } catch (err) {  console.log('Bucket error or something: ', err);  }  };   handleImage();   } catch (err) {  console.log(err);  } };  

Вот консоль:

 Server is running on port 8000 DB CONNECTED GET /api/csrf-token 200 2.732 ms - 52 GET /api/current-instructor 304 176.213 ms - - Bucket error or something: Error: connect ECONNREFUSED 127.0.0.1:80  at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1132:16) {  errno: -4078,  code: 'ECONNREFUSED',  syscall: 'connect',  address: '127.0.0.1',  port: 80,  config: {  url: 'deleted, for safety reasons',  method: 'post',  data: lt;Buffer ff d8 ff e0 00 10 4a 46 49 46 00 01 01 00 00 01 00 01 00 00 ff e2 02 28 49 43 43 5f 50 52 4f 46  49 4c 45 00 01 01 00 00 02 18 00 00 00 00 02 10 00 00 ... 71126 more bytesgt;,  headers: {  Accept: 'application/json, text/plain, */*',  'Content-Type': 'b2/x-auto',  Authorization: 'deleted, for safety reasons',  'Content-Length': 71176,  'X-Bz-File-Name': 'Pepe',  'X-Bz-Content-Sha1': 'deleted, for safety reasons(possibly)',  'User-Agent': 'axios/0.21.4'  },  transformRequest: [ [Function (anonymous)] ],  transformResponse: [ [Function: transformResponse] ],  timeout: 0,  adapter: [Function: httpAdapter],  xsrfCookieName: 'XSRF-TOKEN',  xsrfHeaderName: 'X-XSRF-TOKEN',  onUploadProgress: [Function: onUploadProgress],  maxContentLength: -1,  maxBodyLength: -1,  maxRedirects: 0,  validateStatus: [Function: validateStatus],  transitional: {  silentJSONParsing: true,  forcedJSONParsing: true,  clarifyTimeoutError: false  },  'axios-retry': { retryCount: 3, lastRequestTime: 1635347528124 }  },  request: lt;ref *1gt; ClientRequest {  _events: [Object: null prototype] {  response: [Function],  error: [Function: handleRequestError]  },  _eventsCount: 2,  _maxListeners: undefined,  outputData: [],  outputSize: 0,  writable: true,  destroyed: false,  _last: true,  chunkedEncoding: false,  shouldKeepAlive: false,  _defaultKeepAlive: true,  useChunkedEncodingByDefault: true,  sendDate: false,  _removedConnection: false,  _removedContLen: false,  _removedTE: false,  _contentLength: 71176,  _hasBody: true,  _trailer: '',  finished: true,  _headerSent: true,  _closed: false,  socket: Socket {  connecting: false,  _hadError: true,  _parent: null,  _host: 'localhost',  _readableState: [ReadableState],  _events: [Object: null prototype],  _eventsCount: 8,  _maxListeners: undefined,  _writableState: [WritableState],  allowHalfOpen: false,  _sockname: null,  _pendingData: [Array],  _pendingEncoding: '',  server: null,  _server: null,  parser: null,  _httpMessage: [Circular *1],  [Symbol(async_id_symbol)]: 325,  [Symbol(kHandle)]: null,  [Symbol(kSetNoDelay)]: false,  [Symbol(lastWriteQueueSize)]: 0,  [Symbol(timeout)]: null,  [Symbol(kBuffer)]: null,  [Symbol(kBufferCb)]: null,  [Symbol(kBufferGen)]: null,  [Symbol(kCapture)]: false,  [Symbol(kBytesRead)]: 0,  [Symbol(kBytesWritten)]: 0  },  _header: 'POST deleted, for safety reasons HTTP/1.1rn'    'Accept: application/json, text/plain, */*rn'    'Content-Type: b2/x-autorn'    'Authorization: deleted, for safety reasons=rn'     'Content-Length: 71176rn'    'X-Bz-File-Name: Pepern'    'X-Bz-Content-Sha1: deleted, for safety reasonsrn'    'User-Agent: axios/0.21.4rn'    'Host: localhostrn'    'Connection: closern'    'rn',  _keepAliveTimeout: 0,  _onPendingData: [Function: nop],  agent: Agent {  _events: [Object: null prototype],  _eventsCount: 2,  _maxListeners: undefined,  defaultPort: 80,  protocol: 'http:',  options: [Object: null prototype],  requests: [Object: null prototype] {},  sockets: [Object: null prototype],  freeSockets: [Object: null prototype] {},  keepAliveMsecs: 1000,  keepAlive: false,  maxSockets: Infinity,  maxFreeSockets: 256,  scheduling: 'lifo',  maxTotalSockets: Infinity,  totalSocketCount: 1,  [Symbol(kCapture)]: false  },  socketPath: undefined,  method: 'POST',  maxHeaderSize: undefined,  insecureHTTPParser: undefined,  path: 'deleted, for safety reasons',  _ended: false,  res: null,  aborted: false,  timeoutCb: null,  upgradeOrConnect: false,  parser: null,  maxHeadersCount: null,  reusedSocket: false,  host: 'localhost',  protocol: 'http:',  [Symbol(kCapture)]: false,  [Symbol(kNeedDrain)]: false,  [Symbol(corked)]: 0,  [Symbol(kOutHeaders)]: [Object: null prototype] {  accept: [Array],  'content-type': [Array],  authorization: [Array],  'content-length': [Array],  'x-bz-file-name': [Array],  'x-bz-content-sha1': [Array],  'user-agent': [Array],  host: [Array]  }  },  response: undefined,  isAxiosError: true,  toJSON: [Function: toJSON] }  

Любая помощь будет признательна. Спасибо.