#symfony #amazon-web-services #amazon-s3 #upload #amazon-elastic-beanstalk
#symfony #amazon-веб-сервисы #amazon-s3 #загрузка #amazon-elastic-beanstalk
Вопрос:
Я начинаю работу с Symfony и AWS. Я разрабатываю приложение, в котором пользователь может загружать изображение профиля и создавать галерею изображений. До сих пор локально мне удавалось это делать и сохранять изображения в каталоге (/web/img). Теперь я хочу перенести это приложение в AWS Elastic Beanstalk. Экземпляр и RDS созданы, и приложение запущено, но я хочу знать правильную форму для загрузки файлов, чтобы при каждом развертывании я не терял пользовательские изображения.
Я прочитал несколько статей о S3 с использованием некоторых библиотек Symfony, но все по-прежнему выглядит немного нечетко, чтобы понять и собрать все воедино.
Как я могу настроить S3 для совместной работы с моим экземпляром Elastic Bean? Как я могу загружать содержимое в среду S3 с помощью Symfony? И как я буду обслуживать загруженный контент?
Может ли кто-нибудь помочь мне в этом?
Спасибо.
Ответ №1:
Ваше приложение необходимо будет изменить, чтобы загружать изображения пользователей в корзину S3, а не в локальную файловую систему. Потратьте некоторое время на то, чтобы ознакомиться с тем, как файлы хранятся в S3, и с общими концепциями S3. (У S3 есть сегменты, у сегментов есть объекты, объекты — это файлы.)
На странице AWS S3 PHP SDK доступны примеры PHP для S3. Вы можете включить AWS SDK в Symfony с помощью проекта aws-sdk-php-symfony.
Как только вы освоитесь с S3 и терминологией, вы, вероятно, захотите рассмотреть возможность использования предварительно подписанных URL-адресов для загрузки объектов.
Вы также можете отправлять файлы, используя предварительно подписанные URL-адреса (если это применимо к вашим требованиям), или вы можете использовать AWS SDK для получения изображений напрямую.
Комментарии:
1. Спасибо, jbird, я просмотрю эти документы, которые вы рекомендовали. AWS для меня совершенно новый.
2. Понял! Спасибо @jbird, следуя вашим инструкциям, мне удалось загрузить изображение и сохранить его имя в RDS.