我在 AWS DynamoDB 中有一个数据库。在此数据库中,我想将 3 个文本列放入 ListView 中(每行每列一个文本)。
此外,我想在每一行添加一个图像。
所以,我有四个问题:
1. 我应该在哪里存储图像?在 S3 服务上?
2. 我应该将文本存储在 DynamoDB 表上,还是应该在 EC2 上创建一个 MongoDB 实例并在那里访问?我问,因为我仍在免费套餐上,我不想结束我的免费读写单元。
3. 如何创建从数据库中获取文本和正确图像的列表视图?
4.如果没有图像或其中一个文本是N/A,如何显示" N/A"的文本而不是它?
这是一个悬而未决的问题。这是我的建议:
- 图像应转到 S3。DynamoDB 并非旨在存储大型二进制数据。与其他存储服务相比,它具有每个项目的大小限制,并且范围更广。
- 开发工具包具有 S3Link,允许您将图像存储在 S3 中,将元数据存储在 DynamoDB 中以供查询。请参阅 http://docs.aws.amazon.com/AWSAndroidSDK/latest/javadoc/com/amazonaws/mobileconnectors/dynamodbv2/dynamodbmapper/S3Link.html。
- 见上文。您可以从 DynamoDB 获取文本并链接到图像。
- 见上文。当链接为空时,显示 N/A。
我使用DynamoDBScanExpression和BaseAdapter类解决了它。对于 S3 图像,我使用图像的 url 将其解码为位图,并在每一行中将其设置为 ImageView。