Я работаю над Android-приложением, в котором есть AWS SDK. Пользователи уже авторизованы через Cognito. Я также создал роли IAM, которые должны дать мне DynamoDB и s3.Есть ли у Amazons3 с авторизованной пользовательской ролью IAM все еще нужен назначенный url для загрузки изображения из ведра
В настоящее время действуют авторизация и DynamoDB. Когда я запрашиваю таблицу, он отлично работает, и я получаю ссылку (скопированную и вставленную в базу данных) в файл s3.
Когда я иду загрузить файл, ничего не происходит. Поэтому мой вопрос: нужно ли получать URL-адрес от DynamoDB, а затем назначать его, прежде чем загружать Picasso? Или должен ли быть достаточным тот факт, что мой пользователь имеет право делать что-либо с моим ведро s3?
Спасибо за вашу помощь
Вам необходимо изменить права на ведро/политику. Попробуйте создать новую политику и прикрепить к своему ведру. https://awspolicygen.s3.amazonaws.com/policygen.html – Gangaraju
В комментариях и ответах уже есть некоторые умозрительные догадки, поэтому давайте замедлим и проясним проблему, пожалуйста - «Picasso» - стороннее приложение , и вы извлекаете ссылку из базы данных (может быть, dynamodb) и передаете ей ссылку на объект? (Вы не загружаете объект в свое приложение и не переносите полезную нагрузку). Правильно? –
@ Майкл, я не совсем уверен, что вы имеете в виду. В моей базе данных я сохранил прямую ссылку URL как строку. Я возвращаю эту строку в качестве URL-адреса для Picasso. Когда я делаю файл общедоступным, все работает нормально, но в нормальном состоянии это не так. Как я уже сказал в своем вопросе, у меня установлены роли IAM, чтобы разрешить доступ ко всем в S3bucket. Однако, похоже, это не имеет значения. Я пробовал то, что говорили другие, и я не вижу способа сделать разрешение в DynamoDB для моего аутентифицированного приложения для приложения только для всех пользователей, прошедших аутентификацию AWS. –