gpt4 book ai didi

amazon-web-services - AppSync S3Object 检索

转载 作者:行者123 更新时间:2023-12-01 09:13:56 25 4
gpt4 key购买 nike

我的文件目前正在根据提供的教程上传到 s3 存储桶。

我有一个带有指向 S3Object 的文件字段的 Post 类型。 S3Object 具有bucket、key 和region 的值。

我想允许我的用户下载他们上传的文件,但我无法通过查询访问 Post > file。这意味着我无法获取下载 URL。

现在,DynamoDB 在上传文件时存储以下内容(我在这里更改了值):{"s3":{"key":"id.pdf","bucket":"my-bucket","region":"my-region"}}
我的 Post > file 解析器如下所示:{
"version": "2017-02-28",
"operation": "GetItem",
"key": {
"id": $util.dynamodb.toDynamoDBJson($ctx.source.id),
}
}

响应模板:$util.dynamodb.fromS3ObjectJson($ctx.result.file)
当我运行查询时,出现以下错误:Error: GraphQL error: Unable to convert {bucket=my-bucket, region=my-region, key=id.pdf} to class java.lang.Object.

最佳答案

我相信你需要包装$util.dynamodb.fromS3ObjectJson($ctx.result.file)调用 $util.toJson() .您能否将响应映射模板更改为 $util.toJson($util.dynamodb.fromS3ObjectJson($ctx.result.file))看看这是否有效?

作为旁注,我认为您无需从 Post.file 解析器再次调用 DynamoDB 即可实现所需的效果。创建一个“无”数据源并更改 Post.file 解析器以使用它。您可以提供准系统请求映射模板,例如
{
"version": "2017-02-28",
"payload": {}
}

然后可以更改您的响应映​​射模板以使用源而不是结果。
$util.toJson($util.dynamodb.fromS3ObjectJson($ctx.source.file))

由于在解析 Post.file 字段时已经获取了帖子,因此信息在源中已经可用。如果您需要从与 Post 对象不同的表中获取 S3Link,那么您将需要第二次 DynamoDB 调用。

希望这会有所帮助,并让我知道对 $util.toJson 的调用是否解决了该问题。

谢谢

关于amazon-web-services - AppSync S3Object 检索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49962225/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com