Я развернул приложение Laravel в среде Elastic Beanstalk, и все мои функции загрузки файлов не работают. Я смотрел всюду онлайн, но ничто не может решить эту проблему.
Когда я загружаю документ, кажется, все работает. Ошибка не отображается. Однако файл на самом деле не загружается. Это заставляет меня думать, что именно разрешения вызывают его, однако я установил для папок загрузки значение 755, используя конфигурацию .ebextensions, и проблема все еще остается.
.ebextensions / {имя_приложения} .config
container_commands:
change_permissions:
command: chmod 755 /var/www/html/storage/app/public
Кто-нибудь знает причину этой проблемы? Я стараюсь по возможности избегать использования S3, так как использование Elastic Beanstalk носит временный характер.
Для хранения файлов я предлагаю использовать ведро S3. Используйте Amazon SDK, чтобы сделать это. Для Java, см.
com.amazonaws.services.s3
Интерфейс putObject AmazonS3.
Конечно, ваш код для сохранения файлов должен быть подключаемым, по крайней мере, с двумя реализациями. Одна реализация сохраняет файл на локальный диск, а другая — для его сохранения в S3. Ваш код запуска должен связать правильную реализацию.
Я нашел решение этой проблемы. Причина была в том, что мне нужно было обновить серверную сторону хранилища до папки общего хранилища. Поэтому ссылку на хранилище в / public / пришлось удалить, а затем заново создать на стороне сервера.
php artisan storage:link