This is a example server for upload files to S3 using GraphQL.
- You can test after write your AWS access key and secret in below code.
Mutation: {
UploadImageReq: async(parent: any, args: any, context: any, info: any) => {
const { filename, mimetype, encoding, createReadStream } = await args.file;
const { variable, me } = context;
let result = {
result_code: true,
image_url: ''
}
const s3 = new AWS.S3({
accessKeyId: 'YOUR ACCESS KEY',
secretAccessKey: 'YOUR SECRET KEY',
region: 'ap-northeast-2',
});
let params = {
'Bucket': 'YOUR_BUCKET_NAME',
'Key': 'YOUR_S3_KEY/' + filename,
'ACL': 'public-read',
'Body': createReadStream(),
'ContentType': mimetype
};
try {
let upload_result = await s3.upload(params).promise();
console.log(upload_result);
result['image_url'] = upload_result['Location'];
}
catch(e) {
console.log(e);
result['result_code'] = false;
}
return result;
},
}- Launch exampe server
npm i
npm start
- You can set 2 keys and values likes below.
operations: { "query": "mutation($file: Upload!) { UploadImageReq(file: $file) { result_code image_url } }", "variables": { "file": null } }
map: { "0": ["variables.file"] }
- Finally, you can change to file type of '0' key and select your image on your PC.
- You can see the result likes below after send this message to server.



