android - 如何在 Android 中使用 AWS S3 凭据上传内容

标签 android amazon-web-services amazon-s3

我正在使用 AWS S3 在我的 Android 应用程序中上传和存储内容。我在 java 文件中使用以下代码:

AmazonS3Client s3Client = new AmazonS3Client(
                    new BasicAWSCredentials("XYZ",
                            "ABC+wktN")); 

但这似乎很容易检索(即使 apk 已签名!)。我尝试使用 progaurd,但这会导致某些移动设备上的应用程序崩溃(尤其是 AWS 部分)。

有什么方法可以在代码中隐藏凭据而不让任何人检索它?或者有人用过其他方法吗?一种选择是上传到中间服务器,然后服务器将其上传到 AWS S3,但那是一个额外的跃点。另一个是让应用程序通过 URL 调用从服务器获取凭据,而不是在移动设备上获取凭据,但如果黑客可以直接获取凭据,他也可以获取 URL 并获取 key 。

最佳答案

Amazon Cognito 可以帮助您解决问题。您可以使用它为您的应用程序提供临时的、有限权限的凭证。使用 Cognito

您可以在他们的博客中找到更多信息 http://mobile.awsblog.com/blog/tag/amazon-cognito和开发人员指南 http://docs.aws.amazon.com/cognito/devguide/identity/ .

关于android - 如何在 Android 中使用 AWS S3 凭据上传内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30657583/

相关文章:

android - 连接阿拉伯语和英语文本android TextView

amazon-web-services - 在 S3 存储桶中如何正确配置要下载或读取的 json 格式的文件?

amazon-web-services - 如何将 Step Function 输入传递给 Batch Job

amazon-web-services - S3 存储类 : What is the actual difference between STANDARD and STANDARD_IA?

django - 使用 django-storages 解析 csv 文档时获取 "new-line character seen in unquoted field"

带有 GridLayoutManager 的 Android RecyclerView 使项目跨越多行

android - 当项目有复选框时,RecyclerView 项目不显示涟漪/触摸反馈

android - 没有缓存版本的 com.github.bumptech.glide :compiler:4. 9.0 可用于离线模式

amazon-web-services - 尽管云形成在手动干预后不会回退,但 dynamodb 中的自动缩放

amazon-web-services - Terraform AWS S3 - 拒绝除特定用户以外的所有人