flutter 如何将AWS DynamoDb直接与dart连接

c0vxltue  于 2023-05-19  发布在  Flutter
关注(0)|答案(3)|浏览(155)

我正在Flutter中开发一个消息应用程序,所有消息都存储在AWS DynamoDB中。我没有找到任何直接支持DynamoDB和Dart的文档。因此,我首先将DB连接到NodeJS,并使用flutter应用程序的http req来获取消息。但它不太可靠。只有我能找到一种直接连接它的方法,我才能让应用程序运行得更快。如果有人知道这方面的方法,请帮助。

tyu7yeag

tyu7yeag1#

此编程语言没有AWS SDK。我唯一能想到的就是用你的编程语言编写代码,使用Rest调用DynamoDB。有一个AWS文档,其中包括一个示例:
DynamoDB Low-Level API

72qzrwbm

72qzrwbm2#

您可以尝试非AWS提供的SDK,如one。它包含一个DynamoDB客户端。我以前没用过,所以我不能担保。

yhived7q

yhived7q3#

正如Richard提到的,https://pub.dev/packages/aws_dynamodb_api是一个很好的解决方案。
我在dart中集成了DynamoDB和其他语言:

static var client = DynamoDB(region: 'eu-west-1', 
endpointUrl: "http://localhost:8000", 
credentials: AwsClientCredentials(accessKey: "dummy", secretKey: "dummy"));

static Future<bool> init() async {

var attributeDefinitions = <AttributeDefinition>[
AttributeDefinition(attributeName: "user_id", attributeType: ScalarAttributeType.n)
];

var keySchema = <KeySchemaElement>[
KeySchemaElement(attributeName: "user_id", keyType: KeyType.hash)
];

var throughput = ProvisionedThroughput(readCapacityUnits: 10, writeCapacityUnits: 10);
try 
{
  var response = await client.createTable(attributeDefinitions: attributeDefinitions, keySchema: keySchema, provisionedThroughput: throughput, tableName: "Users");
  print("Created table ${response.tableDescription!.tableName}");
  return true;
} catch(e)
{
  print("Error: $e");
  return false;
}

我下载了DynamoDB的docker镜像进行测试:https://hub.docker.com/r/amazon/dynamodb-local/

相关问题