我有一个 android 应用程序,它以文本和图像的形式收集数据。我实现了 AWS Amplify 集成。我正在使用身份验证进行登录,我还添加了数据存储,用于将收集的数据在线/离线同步到云端。但我收到错误 400,因为我的项目超过了 dynamodb 的 400kb 行限制。经过 这里的研究,我发现可以使用 Amplify 数据存储来存储复杂的对象,例如图像,但它们存储在 s3 中。因此,演示这一点的示例代码用于反应,我未能在本机 android 中实现相同的功能。那么有人有办法在android中实现这个吗?
问问题
337 次
1 回答
0
目前,Amplify 在使用 API 包时仅支持“复杂对象”。这不包括以不同方式处理 AppSync 的 DataStore 包。
- 复杂对象支持:
import { API } from '@aws-amplify/api'
- 没有复杂的对象支持:
import { DataStore } from '@aws-amplify/datastore'
资料来源:
- https://github.com/aws-amplify/amplify-js/issues/4579#issuecomment-566304446
- https://docs.amplify.aws/lib/graphqlapi/advanced-workflows/q/platform/js#complex-objects
如果要使用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 */ })
于 2020-08-20T07:17:35.567 回答