Q40: How should File Uploads be handled in a GraphQL environment?
Two primary architectural approaches exist:
- GraphQL Multipart Request Spec: Sends operations and file binaries in a single
multipart/form-datarequest using customUploadscalars. - Direct-to-S3 / Signed URLs (Recommended): Client requests a pre-signed upload URL via a standard GraphQL mutation, uploads the binary file directly to cloud storage (S3/GCS), then passes the stored file URL back to GraphQL.
Key Takeaways
- Direct-to-S3 pre-signed URLs are preferred over streaming raw upload binaries directly through GraphQL servers.
Knowledge Check
Why are pre-signed storage URLs preferred over passing file binaries directly through GraphQL servers?