При попытке загрузить файл с узла JS, в браузере появляется сообщение об ошибке: Ошибка сети - PullRequest
0 голосов
/ 09 апреля 2019

Я пытаюсь загрузить файл, расположенный в моем хранилище на box.com.

Когда пользователь сделал запрос API с определенным идентификатором, я получаю URL-адрес файла, связанный с этим идентификатором, с box.com и вузел js снова выполняет другой вызов API, чтобы получить куски файла и вернуть его клиенту.

Процесс:

Пользователь выполняет вызов API как: / api? id = 123 для узла js.

В узле js я получаю URL файла, связанный с идентификатором 124.

Полученный URL файла: https://box.com/xyz_123

Используя этот файл, я снова делаювызов API на сервер ящиков и получение файла как чанка по чанку и возврат его клиенту.

Когда файл собирается завершиться через 5 секунд, в браузере он показывает ошибку как: Ошибка сети.

Вот как я вызываю URL-адрес окна, чтобы получить файловые потоки, и возвращаясь к чанку на стороне клиента по чанку.

const creq = https.request(boxurl, (cres) => {
    cres.setEncoding('utf8');
      res.writeHead(cres.statusCode, 
        { 
          'Content-Length': cres.headers['content-length'],
          'Content-Type': 'application/octet-stream',
          'Content-Disposition' : cres.headers['content-disposition']
        }
      );

    // wait for data
    cres.on('data', function(chunk){
      res.write(chunk);
    });

    cres.on('close', function(){
      // closed, let's end client request as well 
      return res.end('Success');
    });

    cres.on('end', function(){
      // finished, let's finish client request as well 
      return res.end('Success');
    });

  }).on('error', function(e) {
    // we got an error, return 500 error to client and log error
    return res.end(e.message);
  });

  creq.end();

Механизм загрузки файлов очень хорошо работает в моей системе.

Когда я развернул код на удаленном сервере и проверил, появляется только эта ошибка.

Может кто-нибудь, пожалуйста, помогите мне в этом.Как это решить.Заранее спасибо.

1 Ответ

0 голосов
/ 17 мая 2019

Чтобы использовать Box Node SDK, вы должны создать приложение Box в консоли разработчика Box.Затем вам нужно настроить и авторизовать это приложение.Пример можно найти здесь

Теперь вы можете написать свое приложение для узла, которое использует Box SDK для общения с вашим приложением / учетной записью Box.Пример того, как его подключить, можно найти здесь .

Код для загрузки файла из Box можно найти в документации Box SDK здесь .Но прежде чем вы сможете скачать файл, вам нужно будет найти его Идентификатор файла, используя другие методы SDK, такие как получение элементов папки или поиск содержимого.

id папки вашей корневой папки в Box всегда 0, что является хорошим местом для поиска при поиске различных номеров файлов или папок.

...