Расширьте хранилище данных для реализации android со сложными объектами - PullRequest
0 голосов
/ 17 июня 2020

У меня есть приложение android, которое собирает данные в виде текста и изображений. Я реализовал интеграцию AWS Amplify. Я использую аутентификацию для входа в систему, а также добавил хранилище данных для онлайн / офлайн-синхронизации собранных данных с облаком. Но я получаю ошибку 400, потому что мой элемент превышает ограничение на количество строк в 400 КБ на Dynamodb. После исследования здесь я обнаружил, что можно использовать хранилище данных Amplify для хранения сложных объектов, таких как изображения, но они хранятся в s3. Таким образом, пример кода, который демонстрирует это, предназначен для реакции, которую мне не удалось реализовать в собственном android. Итак, у кого-нибудь есть способ реализовать это в android?

1 Ответ

0 голосов
/ 20 августа 2020

В настоящее время Amplify поддерживает только «сложные объекты» при использовании пакета API. Сюда не входит пакет DataStore, который обрабатывает AppSyn c по-разному.

  • поддержка сложных объектов: import { API } from '@aws-amplify/api'
  • без поддержки сложных объектов: import { DataStore } from '@aws-amplify/datastore'

Источники:

Если вы хотите использовать DataStore, в настоящее время вам нужно поместить файл в S3 отдельно, а затем вы можете сохранить справочные данные для файла S3 в записи DynamoDB (т. Е. Сегмент, регион, ключ). Это можно сделать с помощью модуля Amplify Storage.

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