从android应用程序访问私有S3存储桶的推荐方式是什么

从android应用程序访问私有S3存储桶的推荐方式是什么,android,amazon-web-services,amazon-s3,amazon-ec2,aws-sdk,Android,Amazon Web Services,Amazon S3,Amazon Ec2,Aws Sdk,我们有私人的S3桶。s3 bucket是手动创建的,其中的文件由我们的.net服务器上传(文件也是私有的),我们希望在android应用程序中安全地访问这些私有文件。我们在应用程序中没有任何登录/签名 我使用下面的方法 1. Created identity pool and enabled access to unauthenticated identities as there is no any login in our app 2. Configured IAM role. for un

我们有私人的S3桶。s3 bucket是手动创建的,其中的文件由我们的.net服务器上传(文件也是私有的),我们希望在android应用程序中安全地访问这些私有文件。我们在应用程序中没有任何登录/签名

我使用下面的方法

1. Created identity pool and enabled access to unauthenticated identities as there is no any login in our app
2. Configured IAM role. for unAuth role, added inline policy to have full aceess to s3 bucket 
我使用以下aws示例来测试方法

我的问题是

  • 这是一个正确的方法,因为文件拥有受版权保护的信息,一个人不应该在不付费的情况下破解bucket并接收所有文件
  • 上面的GitHub示例示例不起作用,并给出了错误,因为访问被拒绝,但如果我将bucket设置为公共的,那么我只能访问公共文件,而不能访问私有文件。那么,这种方法不适用于私有bucket吗

  • 提前谢谢

    在这种情况下,使用未经授权的身份可能不是最好的方法。因为任何人都可以获得未经授权的身份。理想情况下,您应该有自己的授权人来执行此操作。它可以通过多种方式完成,比如API网关和Lambda,它在应用程序中为您提供了一个预签名URL,可用于获取S3文件

    谢谢,
    Rohan

    您是否使用了预先签名的url。在给定的时间内过期。有关更多信息,请参阅本课程。[GeneratePressignedUrlRequest.我在使用以下示例-它有下载方法.transferUtility.download(Constants.BUCKET_NAME,key,file);我在使用移动aws android sdk->