node.js createWriteStream не создает новый файл в Heroku

У меня есть следующий код, который отлично работает на моем localhost работает node.js 0.12.0. Код создает новый файл и копирует данные из удобочитаемого, но не создает новый файл в Heroku.

var output = fs.createWriteStream('public/images/test/testfile.png');
readable.pipe(output);

Я думал, что это как-то связано с разрешением, но всякий раз, когда я меняю разрешение на папку с помощью heroku run bash а потом chmod -R 777 images/ Heroku сбрасывает его обратно в исходное разрешение, которое drwx------,

Так может проблема в другом?

Пожалуйста, обратите внимание, что это происходит молча, без исключения, ничего в журнале.

1 ответ

Решение

В Heroku локальное хранилище файлов dyno не является постоянным (кроме файлов git repo, очевидно), поэтому, если вы напишите локальный файл и dyno перезапустится, файл исчезнет, ​​и если вы запустите другой dyno, он не сможет " смотри "файл".

heroku run bash запускает новый "одноразовый" dyno (об этом можно прочитать здесь: https://devcenter.heroku.com/articles/one-off-dynos), поэтому файл не будет доступен таким образом.

Если вы хотите, чтобы ваши данные сохранялись, лучше используйте базу данных или надстройку постоянного хранения.

Другие вопросы по тегам