Heroku Laravel 5.1文件系统上传

时间:2015-10-07 14:14:58

标签: heroku filesystems laravel-5.1 cleardb

我在使用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? 

1 个答案:

答案 0 :(得分:2)

heroku中的每个dyno都是一个独立的容器,与另一个没有任何共享。这意味着写在磁盘上的文件将无法用于其他dynos,并且一旦重新启动或重新部署应用程序就会丢失。

请参阅https://devcenter.heroku.com/articles/dynos#ephemeral-filesystem

因此,您不能依赖本地文件系统(它会中断12factor)。您需要将它们存储在像Amazon S3这样的远程平台上 见https://devcenter.heroku.com/articles/s3-upload-php