Sanu0074
@Sanu0074

Как осуществить загрузку файлов из директории не доступной из вне?

Допустим app/www/ - это папка где лежит вся статика и она видна всем из браузера, app/protected/ - тут лежат файлы которые мы будем скачивать.

Как это очень легко и просто сделать? - с помощью Nginx и X-Accel-Redirect

Но, задача - сделать это без nginx, чисто средствами ноды.

Суть такая, есть url /download/16947 на который мы стучимся (у нас только AJAX запрос доступен из за некоторых особенностей приложения), в контроллере мы можем достать инфу о текущем файле (его местоположение в app/protected/ и др.), и теперь можем отдать его клиенту. Но как бы это сделать, чтоб было все очень круто?

Я пока придумал вот что: берем этот файл, копируем в app/www/tmp/, лепим ссылку на него когда он уже в tmp, и в результате - направляем юзера уже в новой вкладке например на этот временный файл. Потом tmp когда-то почистит сборщик мусора в виде какой-то кронджобы. Это плохой вариант и мне он не нравится. Есть ли у вас идеи получше?
  • Вопрос задан
  • 118 просмотров
Решения вопроса 1
mannaro
@mannaro
Умею профессионально гуглить
router.get('/download/16947', function(req, res) {
  var pathToFile = getPathFile();
  fs.createReadStream(pathToFile).pipe(res);
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы