我有一个使用AWS Amplify和Appsync设置的react项目。
我正在使用Amplify中的GraphQL功能与AppSync交互。
我正在尝试从react应用程序将图像上传到S3。有人通过Amplify GraphQL做到了吗?你能帮忙吗?
顺便说一句,我已经阅读了有关如何使用Apollo和aws-appsync-react进行操作的文档。我试图弄清楚如何使用Amplify中内置的GraphQL功能。
答案 0 :(得分:2)
我认为现在无法通过Amplify.API上传复杂的对象,因为要通过AppSync进行上传,您需要向AppSync客户端提交complexObjectsCredentials
。
const client = new AWSAppSyncClient({
url: ENDPOINT,
region: REGION,
auth: { .. },
complexObjectsCredentials: () => Auth.currentCredentials(),
});
似乎在配置放大时无法提供这些凭据。
或者,您可以使用“ Amplify.Storage”模块上传没有AppSync的文件
答案 1 :(得分:1)
import Amplify from 'aws-amplify';
import awsconfig from './aws-exports';
Amplify.configure(awsconfig);
// above goes at root of application
// below is example
import { Storage } from 'aws-amplify'
var imageSrc = this.webcam.getScreenshot()
fetch(imageSrc)
.then(res => res.blob() )
.then( blob => {
const file = new File( [blob], "tmp.png")
key = "uuid_for_image"
Storage.put(key, image)
})