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), поэтому файл не будет доступен таким образом.
Если вы хотите, чтобы ваши данные сохранялись, лучше используйте базу данных или надстройку постоянного хранения.