Как подключить кастомный домен в s3 Laravel?
На хостинге подключили кастомный домен и теперь файлы открываются по пути https://s3.forblitz.ru/uploads/modifications/image... (кастомный домен)
https://s3.timeweb.com/296643f3-forblitz/uploads/m... (домен хостинга)
Однако, если установить кастомный домен в AWS_URL или AWS_ENDPOINT, дамп Storage::put() выдаёт false. При этом, если установить стандартный домен s3.timeweb.com, всё работает нормально (в нём также присутствует название бакета).
Дополнительно:
AWS_BUCKET=296643f3-forblitz
AWS_URL=https://s3.forblitz.ru
AWS_ENDPOINT или не задавать или попробовать https://s3.timeweb.com
- не знаю как ты это сделал, но я перепробовал все варианты, включая этот и оно не работало.
решил попробовать ещё раз - заработало, спасибо, лучший :)
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для подключения кастомного домена к хранилищу S3 в Laravel, вам необходимо выполнить несколько шагов. Ниже приведены инструкции:
1. Создайте бакет S3 на Amazon Web Services (AWS) и загрузите в него необходимые файлы.
2. Зайдите в консоль управления AWS и откройте раздел S3. Найдите ваш бакет и откройте его. Перейдите во вкладку «Свойства» и найдите раздел «Статический веб-сайт хостинг». Включите эту функцию и запомните конечную точку (Endpoint) вашего бакета.
3. Далее вам необходимо настроить DNS записи для вашего кастомного домена. Создайте новую запись CNAME или A в настройках вашего домена и укажите в качестве значения конечную точку вашего бакета S3.
4. Теперь приступим к настройке Laravel. Откройте файл `config/filesystems.php` и найдите раздел `disks`. Добавьте новый диск для вашего S3 бакета, указав ключ доступа, секретный ключ, регион и конечную точку бакета. Пример кода:
's3_custom' => [ 'driver' => 's3', 'key' => 'your-key', 'secret' => 'your-secret', 'region' => 'your-region', 'bucket' => 'your-bucket', 'endpoint' => 'your-endpoint', ],
5. Теперь вам нужно изменить файл `.env` и добавить новые переменные окружения для вашего кастомного диска. Пример:
S3_CUSTOM_KEY=your-key S3_CUSTOM_SECRET=your-secret S3_CUSTOM_REGION=your-region S3_CUSTOM_BUCKET=your-bucket S3_CUSTOM_ENDPOINT=your-endpoint
6. Теперь вы можете использовать ваш кастомный диск S3 в Laravel для загрузки и получения файлов. Пример использования:
Storage::disk('s3_custom')->put('file.jpg', $file); $url = Storage::disk('s3_custom')->url('file.jpg');
Теперь ваш кастомный домен должен быть успешно подключен к вашему S3 бакету в Laravel. Не забудьте выполнить команду `php artisan config:cache`, чтобы обновить кэш конфигурации Laravel.