1

我在 Heroku 中使用 Laravel 5.1 框架和 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? 
4

1 回答 1

2

heroku 中的每个 dyno 都是一个独立的容器,与其他容器不共享任何内容。这意味着写入磁盘上的文件将无法用于其他测功机,并且会在应用程序重新启动或重新部署后立即丢失。

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

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

于 2015-10-07T15:35:01.560 回答