Загрузить прямо на S3 или через EC2? - PullRequest
11 голосов
/ 19 февраля 2012

Я хотел бы создать веб-сервис для приложения для iPhone.Что касается загрузки файлов, мне интересно, какова стандартная процедура и наиболее экономичное решение.Насколько я вижу, есть две возможности:

  1. Клиент> S3: я загружаю файл с iPhone на S3 напрямую (с помощью AWS SDK )
  2. Клиент> EC2> S3: я загружаю файл на свой сервер (EC2 под управлением Django), а затем сервер загружает файл на S3 (как описано в этом сообщении )

Я не планирую изменять файл каким-либо образом.Мне нужно только указать базу данных, чтобы добавить запись.Поэтому, если бы я должен был загрузить файл Client> S3, мне все равно пришлось бы подключиться к серверу, чтобы сделать запись в базе данных.

Кажется , как будто EC2> S3 неЭто ничего не стоит, пока они находятся в одном регионе.

Мне было бы интересно узнать, какие преимущества и недостатки есть, прежде чем я начну осуществлять загрузку файлов.

1 Ответ

15 голосов
/ 19 февраля 2012

Я бы определенно сделал это через S3 по соображениям масштабируемости. Правда, данные между S3 и EC2 бывают быстрыми и дешевыми, но загрузка выполняется долго, а не как обычные веб-запросы. Поэтому вы можете насыщать NIC на своем экземпляре EC2.

Скорее, верните GUID клиенту, загрузите на S3 с ключом, установленным в GUID и Content-Type, установленным соответствующим образом. Затем вызовите конечную точку веб-службы / Ajax для создания записи БД с ключом GUID после завершения загрузки.

...