我在使用Laravel 5.1框架和Heroku中的Clear DB广告将文件上传到Heroku应用程序时出现问题。
已经阅读了Laravel文档,但我认为问题在于保存方法......
我的意思是在本地模式下工作正常:
1) \Storage::disk('local')->put($name, \File::get($file));
or
2)
$name = $request->file->getClientOriginalName();
Storage::put($name,
file_get_contents($request->file('path')->getRealPath())
);
I use "\Storage::disk('local')" because i supose 's3' for amazon and Rackspace Cloud Storage... shall i use disk('web') or something like that?
any suggestion?
答案 0 :(得分:2)
heroku中的每个dyno都是一个独立的容器,与另一个没有任何共享。这意味着写在磁盘上的文件将无法用于其他dynos,并且一旦重新启动或重新部署应用程序就会丢失。
请参阅https://devcenter.heroku.com/articles/dynos#ephemeral-filesystem
因此,您不能依赖本地文件系统(它会中断12factor)。您需要将它们存储在像Amazon S3这样的远程平台上 见https://devcenter.heroku.com/articles/s3-upload-php