Поддерживает ли бесплатный уровень приложений Heroku загрузку файлов? - PullRequest
0 голосов
/ 26 октября 2018

Я тестирую приложение стека MEAN. У меня есть серверная часть Node.js, которая обрабатывает загрузку файлов (через fs/multer). Однако я получаю сообщение об ошибке 503 при попытке запустить его в работе.

Локально все работает нормально. Я использую свободный уровень Heroku; этот уровень заблокирован, чтобы запретить загрузку файлов?

Загрузка, которую я сейчас пытаюсь (пробовал несколько), составляет всего 36 КБ (.png).

Прошел через мои журналы и нашел 503-

2018-10-26T20:39:24.352297+00:00 heroku[router]: at=error code=H13 desc="Connection closed without response" method=POST path="/media/upload" host=www.example.co.uk request_id=5388711c-bc99-4e42-9dbd-7b645fbefb43 fwd="90.222.69.255" dyno=web.1 connect=1ms service=130ms status=503 bytes=0 protocol=http 2018-10-26T20:39:24.306975+00:00 app[web.1]: (node:20) [DEP0013] DeprecationWarning: Calling an asynchronous function without callback is deprecated. 2018-10-26T20:39:24.307037+00:00 app[web.1]: (node:20) [DEP0013] DeprecationWarning: Calling an asynchronous function without callback is deprecated. 2018-10-26T20:39:24.318818+00:00 app[web.1]: fs.js:113 2018-10-26T20:39:24.318822+00:00 app[web.1]: throw err; // Forgot a callback but don't know where? Use NODE_DEBUG=fs 2018-10-26T20:39:24.318824+00:00 app[web.1]: ^ 2018-10-26T20:39:24.318826+00:00 app[web.1]: 2018-10-26T20:39:24.318828+00:00 app[web.1]: Error: ENOENT: no such file or directory, mkdir './uploads/18'

1 Ответ

0 голосов
/ 27 октября 2018

Загрузка файлов не должна генерировать HTTP 503 самостоятельно. Вы должны проверить свои журналы (через heroku logs), чтобы получить больше информации о том, что терпит неудачу. Тем не менее, даже если вы решите эту проблему, вам, вероятно, потребуется внести фундаментальные изменения в способ обработки загрузок файлов.

Все уровни Heroku имеют эфемерную файловую систему . Любые изменения, внесенные в файловую систему, теряются при каждом перезапуске dyno, что происходит часто (не реже одного раза в день).

Официальная рекомендация - помещать загруженные файлы в сторонний сервис, такой как Amazon S3. Библиотека multer-s3 должна помочь с этим.

...