AWS S3 Для изображения профиля

#amazon-s3 #okta #avatar #profile-picture

#Amazon-s3 #okta #аватар #изображение профиля

Вопрос:

Я создаю приложение, в котором пользователь может загружать / удалять изображение профиля, установленное в его учетной записи. Я видел много вещей по этому поводу, но ничто не соответствует моему сценарию.

Я использую Okta в качестве Idp, и все учетные записи пользователей хранятся в универсальном каталоге Okta. Я планировал использовать AWS для большей части серверной инфраструктуры, не связанной с входом / аутентификацией.

Итак, этот конкретный сценарий заключается в том, что пользователь загружает изображение профиля, которое будет сохранено в AWS s3 (корзина изображений профиля с вложенными папками для каждого пользователя. Каждая папка содержит историю изображений профиля).

Все это общедоступно, нет необходимости в особых ограничениях на чтение. Проблема связана с ограничением возможности обновления / удаления / загрузки только от зарегистрированного пользователя или какого-либо администратора.

Все примеры AWS s3, которые я видел, показывают использование AWS cognito или какого-либо другого продукта AWS, чего здесь нет.

Итак, мой вопрос в том, правильно ли я использую S3 для хранения изображений? Или мне лучше хранить их в моей собственной базе данных? Или любое другое решение?

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

1. В этом руководстве я покажу, как вы можете сохранить свой аватар непосредственно в Okta в виде изображения в кодировке base64. developer.okta.com/blog/2018/09/17 /…

2. Это помогает, но не решает проблему, связанную с тем, что только пользователь может обновлять изображение профиля. Конечно, если оно хранится как строка base64 в атрибуте Okta, у вас могут быть политики Okta, чтобы ограничить это, но если бы я хранил изображение в корзине AWS S3 с профилем Okta, имеющим ссылку на изображение в профиле, проблема все еще существует.

3. Это единственный или правильный способ сделать это? Это решает мою проблему, но я, возможно, недостаточно знаю об API okta для получения этого значения только для чтения, если он не является аутентифицированным пользователем. Пример: я могу видеть ваш аватар, и вы можете видеть мой, но только я могу обновить свой собственный

4. Я просто надеялся показать, как вы можете добавлять пользовательские атрибуты в профиль пользователя. Вместо этого вы можете сохранить URL-адрес изображения аватара. Или вы можете сохранить эту информацию в базе данных и использовать электронную почту пользователя (или другой уникальный идентификатор) для ее поиска.

5. какие знания вы хотите реализовать здесь, это политика ролей IAM для доступа к ресурсам AWS, например, S3. И вы должны выбрать, отправлять ли запросы через SDK или API Gateway для загрузки изображения. Базовые знания cors S3, а также