当前位置: 首页 > 知识库问答 >
问题:

如何使用AWS放大器GraphQL客户端上传文件到S3

籍利
2023-03-14

以下是AWS Amplify GraphQL客户端的官方文档:https://aws-amplify.github.io/amplify-js/media/api_guide.html.本节提供了基本String输入的示例。

对于AWS Mobile Appsync SDK For Javascript,这里有一个详细的文档:https://docs.aws.amazon.com/appsync/latest/devguide/building-a-client-app-react.html.然而,我不想为它添加另一个配置-我已经有了一个用于放大的配置。

那么,如何使用AWS Amplify和AWS AppSync作为后端将文件上载到S3存储,Amplify需要什么额外的配置?如果有的话?

共有1个答案

唐裕
2023-03-14

将Httpendpoint添加为一个选项,用作AppSync架构的数据源,但到目前为止,没有S3存储桶作为选项。有像[this](https://stackoverflow.com/a/50218870/4636715)这样的解决方案,但是它们需要在Javascript端的AWSAppSyncClient,这将增加客户端代码的复杂性,因为放大器已经在那里设置了。

所以,我最终使用了与AppSync无关的AWS放大器的存储。然后,我等待上传成功,并调用AppSync突变,使用常规数据源解析器在DynamoDB中存储上传文件的密钥。

 类似资料:
  • 问题内容: 我正在上传base64字符串,但GraphQL挂起了。如果我将字符串切成少于50,000个字符,它将起作用。50,000个字符后,graphQL永远不会进入解析函数,但不会给出错误。在较小的字符串上,它可以正常工作。 问题答案: 此处的正确方法是使用AWS AppSync通过复杂类型执行实际的S3上传- 您在此处说明的内容看起来更像是您尝试将base64编码的图像作为字符串保存到字段中

  • 问题内容: 首先,我通常不愿发布这个问题,因为我一直觉得互联网上的所有内容都有答案。在花了无数小时寻找这个问题的答案之后,我终于放弃了这个声明。 这有效: 我想做什么? 使用getSignedUrl方法通过PUT(从客户端)将文件上传到Amazon S3 允许任何人查看上载到S3的文件 注意: 如果有一种更简便的方法允许客户端(iPhone)使用预签名的URL(并且不暴露客户端的凭据)将其上传到A

  • 我在另一个人推送的AWS AppSync上有一个GraphQL API,我想连接到它并在我的Android应用程序中获取数据。根据AWS文档,要将API与我的应用程序集成,我应该执行以下3个命令: 之后,我需要基于graphql模式生成Java类。我执行,但收到错误“未配置AppSync API。请添加API”。如果执行,我会得到“您的项目中已经有一个AppSync api。请使用“放大更新api

  • 在使用AWS Amplify模型转换的数据模型中,如何处理接口并将其用于连接? 似乎我的选择是将@model放在类型上,但一旦运行了amplify update api,我就会在查询上得到单独的Dynamo表和查询。 变压器能否支持此处记录的接口:https://docs.aws.amazon.com/appsync/latest/devguide/interfaces-and-unions.ht

  • 我试图创建一个AWS客户端为IOT以下这篇文章:我如何才能发布到MQTT主题在亚马逊AWS Lambda函数? 但是,我需要设置一个配置文件,以便从我的文件中选择正确的凭据。 描述如何做到这一点(使用boto3连接到CloudFront时如何选择AWS配置文件)的文章使用了,而不是创建。但是,不是您可以从会话中获得的“资源”。 当我尝试上述操作时,我得到了错误: 我们已经达到了完全的第22条军规。