#android #amazon-s3 #aws-amplify
#Android #amazon-s3 #aws-amplify
Вопрос:
Я использую библиотеку AWS Amplify для Android в своем приложении и пытаюсь отобразить элементы из корзины S3, как указано в документах для хранения Amplify:
Amplify.Storage.list("/",
{ result ->
Log.i("MyAmplifyApp", "Total Items : " result.items.size)
result.getItems().forEach { item ->
Log.i("MyAmplifyApp", "Item: " item.getKey())
}
},
{ error ->
Log.e("MyAmplifyApp", "List failure", error)
Toast.makeText(this, "Something went wrong. Please try again.", Toast.LENGTH_SHORT)
.show()
}
)
Независимо от того, какой путь я указываю, я получаю обратно 0 элементов. Есть идеи? Отсутствует
ошибка, напечатанная в logcat.
Примечание:
- Роль пользователя / политика имеет права доступа к S3
- Поток аутентификации Cognito отлично работает с пользователями, не прошедшими проверку подлинности, или даже с аутентифицированными пользователями
- Путь существует
- Корзина существует и содержит объекты.
Заранее спасибо!
Комментарии:
1. Можете ли вы поделиться любыми сообщениями об ошибках, которые вы видите?
2. @Richardmclellan ошибки нет. все идет успешно, и я получаю общее количество элементов: 0, но в AWS у меня есть список элементов
3. Можете ли вы поделиться дополнительной информацией о том, как вы создали свою корзину и как вы добавили в нее элементы? Было ли это через CLI amplify или каким-либо другим способом? Если это существующее хранилище, созданное вне Amplify, вы можете использовать его, следуя этому руководству
4. Я использую только CLI amplify
5. То же самое и здесь, я получаю 0 элементов, независимо от того, что я пытаюсь, моя роль IAM настроена на выполнение чего-либо на S3, и процесс аутентификации проходит нормально, и в пути есть элементы s3. я пробовал разные пути, но, похоже, ничего не сработало!
Ответ №1:
Я немного опаздываю на вечеринку, но сегодня столкнулся с точно такой же проблемой.
Оказывается, что внутри вашей корзины S3, если вы хотите отобразить общедоступные файлы, вы должны указать папку с именем ‘public’.
Сегодня я потратил на это около 5 часов, модифицируя списки управления доступом и пробуя другие варианты, и нашел ответ здесь на Github для Amplify-js. Я надеюсь, что это сэкономит другим немного времени.
Ответ №2:
Я получаю список изображений внутри папки моего корзины.
Amplify.Storage.list("/folderName",
{ result ->
Log.i("MyAmplifyApp", "Total Items : " result.items.size)
result.getItems().forEach { item ->
Log.i("MyAmplifyApp", "Item: " item.getKey())
}
},
{ error ->
Log.e("MyAmplifyApp", "List failure", error)
Toast.makeText(this, "Something went wrong. Please try again.", Toast.LENGTH_SHORT)
.show()
}
)
Комментарии:
1. Почему это не сработало до сих пор? и что вы сделали, чтобы решить проблему?
2. получение списка внутренней папки корзины