Таким образом, мой проект имеет 2 dynos [web, worker] на PHP.
В worker
Я создал файл (например: /app/abc.txt
) после долгого процесса.
В web
Я разрешаю пользователю загрузить этот файл, но, хотя я и предоставляю точное имя файла, система не смогла открыть его (было сказано, что файл не найден).
2017-04-02T03:38:29.606293+00:00 app[worker.1]: [2017-04-02 03:38:29] myapp.INFO: [start] confirmed existence of /app/abc.txt [] []
Я подтвердил существование файла с помощью file_exists
функция, которая возвращает TRUE. (Я даже пытаюсь file_get_contents
и в состоянии получить контент без проблем). Но когда я пытаюсь получить доступ к нему из web
,
2017-04-02T04:21:13.226793+00:00 app[web.1]: [2017-04-02 04:21:13] myapp.INFO: [api.download] find not found /app/abc.txt [] []
У кого-нибудь есть идеи, почему это так?
К сожалению, вы не можете получить доступ к файлу в одном dyno из другого dyno, потому что это разные экземпляры виртуальных машин. Что вы можете сделать, это использовать внешнее хранилище, такое как S3.
Других решений пока нет …