我在我的应用程序中使用AWS的Amplify Android库,并且我正在尝试从S3桶中列出项目,正如Storage Amplify docs中提到的那样:
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没有打印错误。
注:
1.用户角色/策略具有S3的访问权限
- Cognito身份验证流可以很好地使用未经身份验证的用户,甚至是经过身份验证的用户
1.路径存在 - Bucket存在且具有对象。
提前致谢!
2条答案
按热度按时间lf5gs5x21#
我来晚了一点,但今天遇到了同样的问题。
事实证明,在您的S3存储桶中,如果您想要列出公共文件**,则必须提供名为'public'的文件夹**。
我今天浪费了大约5个小时修改ACL,并尝试其他选项,并在这里找到了答案Github for Amplify-js。我希望这将保存其他人一些时间。
qojgxg4l2#
我正在我的存储桶文件夹中获取图像列表。