无法使用Laravel在Heroku上存储文件

无法使用Laravel在Heroku上存储文件,laravel,laravel-5,heroku,Laravel,Laravel 5,Heroku,我在Heroku上部署了一个简单的Laravel(v5.7)应用程序,配置如下: filesystems.php: 'public' => [ 'driver' => 'local', 'root' => storage_path('app/public'), /* app/storage/app/public */ 'url' => env('PUBLIC_STORAGE_URL'), /* http://myApp.herokuapp.com

我在Heroku上部署了一个简单的Laravel(v5.7)应用程序,配置如下:

filesystems.php

'public' => [
    'driver' => 'local', 
    'root' => storage_path('app/public'), /* app/storage/app/public */
    'url' => env('PUBLIC_STORAGE_URL'), /* http://myApp.herokuapp.com/public/storage */ 
    'visibility' => 'public', 
],
Heroku树:

app
    Procfile
    app
    database
    storage
        app
            public
    public
        storage  /* symlink to /app/storage/app/public */
该应用程序在Heroku上运行良好,但我无法将文件上载到公共存储文件夹,而它在本地运行良好

我正在使用以下代码:

request()->file($userSelectedFile)->store($userFolderName);
生成的路径示例如下所示:

http://myApp.herokuapp.com/public/storage/userFolderName/kwooAGW0CrChzDbUUhOdSXsoLDI99rd1enPd22ZU.png
但在
app/storage/app/public/
中未创建任何文件

如何在Heroku上正确处理用户上传?

Heroku提供了一个解决方案。它可以用于临时存储,但当dynos重新启动时,在那里保存的任何内容都将丢失。这种情况发生(至少每天一次)

如果您需要长期存储,Heroku:

由于Frank de Jonge的出色PHP包,Laravel提供了一个强大的文件系统抽象。Laravel Flysystem集成为本地文件系统、Amazon S3和Rackspace云存储提供了易于使用的驱动程序。更好的是,在这些存储选项之间切换非常简单,因为每个系统的API都保持不变


假设您想要使用S3,那么相应地更新您的
config/filesystems.php
。那里应该已经有一个S3配置示例。

在服务器上写入和读取存储文件夹的权限?@ViperTecPro所有目录都有700个权限
php artisan存储:link
在heroku控制台中运行此命令,现在,由于符号链接,您可以访问上载到存储器中的文件。问题是这些文件根本没有创建!我不在乎他们在服务器上呆多久,因为我只是在测试应用程序。@Jalil,为什么要把时间浪费在不能正常工作的事情上?使用S3(或其他类似的服务)是一种快速修复方法,它可以解决您的问题,并且能够正确地完成。我对Laravel不太清楚,但许多框架无论如何都不能在生产环境中为静态文件服务。