首页 > 解决方案 > 为具有复杂对象的 android 实现放大数据存储

问题描述

我有一个 android 应用程序,它以文本和图像的形式收集数据。我实现了 AWS Amplify 集成。我正在使用身份验证进行登录,我还添加了数据存储,用于将收集的数据在线/离线同步到云端。但我收到错误 400,因为我的项目超过了 dynamodb 的 400kb 行限制。经过 这里的研究,我发现可以使用 Amplify 数据存储来存储复杂的对象,例如图像,但它们存储在 s3 中。因此,演示这一点的示例代码用于反应,我未能在本机 android 中实现相同的功能。那么有人有办法在android中实现这个吗?

标签: aws-amplify-sdk-android

解决方案


目前,Amplify 在使用 API 包时仅支持“复杂对象”。这不包括以不同方式处理 AppSync 的 DataStore 包。

  • 复杂对象支持:import { API } from '@aws-amplify/api'
  • 没有复杂的对象支持:import { DataStore } from '@aws-amplify/datastore'

资料来源:

如果要使用DataStore,目前需要将文件单独放入S3,然后可以在DynamoDB记录中存储对S3文件的引用详情(即bucket、region、key)。这可以通过 Amplify Storage 模块来完成。

const { key } = await Storage.put(filename, file, { contentType: file.type } )
const result = await DataStore.save({ /* an object with s3 key/info */ })

推荐阅读