# ☝ GraphQL File Uploads with Apollo Server 2, React Hooks, TypeScript & Amazon S3 \[Tutorial\]

DevFeed: [☝ GraphQL File Uploads with Apollo Server 2, React Hooks, TypeScript & Amazon S3 \[Tutorial\]](<https://devfeed.tech/articles/graphql-file-uploads-with-apollo-server-2-react-hooks-typescript-amazon-s3-tutorial-23604.md>)

Original publisher: [Read original article](<https://www.apollographql.com/blog/with-react-hooks-typescript-amazon-s3-tutorial>)

Author: Khalil Stemmler

Published: 2020-02-14T18:47:00Z

Content type: tutorial

Language: en

Sources: [Apollo Blog](<https://devfeed.tech/sources/apollo-blog.md>)

Topics: [GraphQL](<https://devfeed.tech/topics/graphql.md>), [apollo-server](<https://devfeed.tech/topics/apollo-server.md>), [Amazon S3](<https://devfeed.tech/topics/amazon-s3.md>), [TypeScript](<https://devfeed.tech/topics/typescript.md>), [React Hooks](<https://devfeed.tech/topics/react-hooks.md>)

Tags: [amazon-s3](<https://devfeed.tech/tags/amazon-s3.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [security](<https://devfeed.tech/tags/security.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>), [typescript](<https://devfeed.tech/tags/typescript.md>)

## AI overview

This practical tutorial explains how to implement GraphQL file uploads using Apollo Server 2, Apollo Client, TypeScript, React Hooks, and Amazon S3. A May 2022 update warns that the Apollo Server 2 multipart-upload approach is obsolete and can introduce CSRF vulnerabilities without specific prevention measures.

## Source excerpt

Update: May 2022 This post shows you how to implement file uploads via "multipart requests" in the obsolete Apollo Server 2. Apollo Server 3 no longer integrates with (a specific outdated version of) the package by default, so in order to follow these instructions you'll need to explicitly integrate with the package. Additionally, integrating with introduces major "CSRF" security vulnerabilies unless you specifically prevent them.