【问题标题】:Cannot list AWS S3 public folder items when using Android Amplify?使用 Android Amplify 时无法列出 AWS S3 公用文件夹项目?
【发布时间】:2020-12-04 01:10:18
【问题描述】:

我在我的应用程序中使用 AWS 的 Amplify Android 库,并且我正在尝试列出项目 正如Storage Amplify docs 中提到的那样,来自 S3 存储桶:

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 的访问权限
  2. Cognito 身份验证流程使用未经身份验证的用户或什至可以正常工作 经过身份验证的用户
  3. 路径存在
  4. 桶存在且有对象。

提前致谢!

【问题讨论】:

  • 您能分享您看到的任何错误消息吗?
  • @RichardMcClellan 没有错误。它成功了,我得到了总项目:0 但在 AWS 我有一个项目列表
  • 您能否分享有关您如何创建存储桶以及如何向其中添加项目的更多信息?是通过放大 CLI 还是其他方式?如果这是在 Amplify 之外创建的现有存储桶,您可以通过关注 this guide 来使用它
  • 我只使用 amplify CLI
  • 同样,无论我尝试什么,我都收到 0 个项目,我的 IAM 角色配置为在 S3 上执行任何操作,并且身份验证过程正常,并且路径中有 s3 项目。我尝试了各种路径似乎没有任何工作!

标签: android amazon-s3 aws-amplify


【解决方案1】:

我在我的存储桶文件夹中获得了一个图像列表。

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()
    }
)

【讨论】:

  • 为什么到目前为止还不行?你做了什么解决了这个问题?
  • 获取存储桶内部文件夹的列表
猜你喜欢
  • 1970-01-01
  • 2020-11-08
  • 1970-01-01
  • 2020-09-17
  • 1970-01-01
  • 2020-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多