如何使用 Elastic Beanstalk 使用 Laravel 上传文件?
How to upload a file using Laravel with Elastic Beanstalk?
我已经在 Elastic Beanstalk 环境中部署了一个 Laravel 应用程序,但我的所有文件上传功能都无法正常工作。我在网上到处找,但没有什么能解决这个问题。
当我上传文档时,似乎一切正常。没有显示错误。但是,该文件实际上并未上传。这让我认为是权限导致的,但是,我使用 .ebextensions 配置将上传文件夹设置为 755,问题仍然存在。
.ebextensions/{appname}.config
container_commands:
change_permissions:
command: chmod 755 /var/www/html/storage/app/public
有人知道这个问题的原因吗?我尽量避免使用 S3,因为使用 Elastic Beanstalk 只是暂时的。
要存储文件,我建议使用 S3 存储桶。使用亚马逊 SDK 来做。对于 java,请参阅
com.amazonaws.services.s3
putObject 接口 AmazonS3.
当然,你的文件保存代码应该是可插拔的,至少有两个实现。一种实现将文件保存到本地磁盘,另一种实现将文件存储在 S3 中。您的启动代码应该连接正确的实现。
我找到了解决这个问题的方法。原因是因为我需要将存储 link 服务器端更新到 public 存储文件夹。所以必须删除 /public/ 中的存储 link,然后重新创建服务器端
php artisan storage:link
我已经在 Elastic Beanstalk 环境中部署了一个 Laravel 应用程序,但我的所有文件上传功能都无法正常工作。我在网上到处找,但没有什么能解决这个问题。
当我上传文档时,似乎一切正常。没有显示错误。但是,该文件实际上并未上传。这让我认为是权限导致的,但是,我使用 .ebextensions 配置将上传文件夹设置为 755,问题仍然存在。
.ebextensions/{appname}.config
container_commands:
change_permissions:
command: chmod 755 /var/www/html/storage/app/public
有人知道这个问题的原因吗?我尽量避免使用 S3,因为使用 Elastic Beanstalk 只是暂时的。
要存储文件,我建议使用 S3 存储桶。使用亚马逊 SDK 来做。对于 java,请参阅 com.amazonaws.services.s3 putObject 接口 AmazonS3.
当然,你的文件保存代码应该是可插拔的,至少有两个实现。一种实现将文件保存到本地磁盘,另一种实现将文件存储在 S3 中。您的启动代码应该连接正确的实现。
我找到了解决这个问题的方法。原因是因为我需要将存储 link 服务器端更新到 public 存储文件夹。所以必须删除 /public/ 中的存储 link,然后重新创建服务器端
php artisan storage:link