S3 для конечной точки Rails API — это необходимо?

#ruby-on-rails #ruby #amazon-s3

#ruby-on-rails #ruby #amazon-s3

Вопрос:

Команде мобильной iOS нужна конечная точка, на которую они могут отправлять имя пользователя, рейтинг пользователя и либо изображение, связанное с этим пользователем, либо массив изображений, если у пользователя есть gif или анимация, связанная с ними. Затем они проверят эту конечную точку, чтобы отобразить эти изображения на другой странице в своем мобильном приложении.

Я решил создать это в Rails в качестве прототипа. Сначала я думал, что мне понадобится S3 для хранения изображений, но теперь я не уверен. Не могу ли я использовать встроенную базу данных в моем приложении Rails, поскольку мое приложение Rails не будет отображать какие-либо изображения? Каковы преимущества использования S3 в этом случае? Необходим ли S3?

Комментарии:

1. Если вам не нужно хранить фактические изображения, а вместо этого просто нужно сохранить URL-адрес для них, вам не нужен S3, и вы можете хранить его непосредственно в базе данных. Если они отправляют фактические файлы изображений, вам нужно будет сохранить их в S3, поскольку эфимерная файловая система Heroku не сохраняется после перезапуска dyno.

Ответ №1:

Для целей прототипирования нет, S3 не нужен. Вы можете хранить изображения локально в файловой системе или даже в БД, хотя я бы сказал, что вам следует сразу начать с Postgres, потому что у него есть тип массива, который вы можете использовать для таблицы изображений.

Однако, если вы делаете это реальной особенностью продукта, да, рассмотрите S3 очень серьезно. На самом деле, что-то еще, что вы, возможно, захотите изучить, — это CloudFront, потому что это позволит вам создать CDN, а извлечение изображений на стороне пользователя будет быстрее. Локальность — это значительная часть быстрого пользовательского интерфейса, особенно если изображения составляют большую его часть.

Комментарии:

1. Спасибо, я исследовал CloudFront, и я думаю, что вместо этого я собираюсь двигаться дальше. Я ценю ввод и перенаправление!