Q40: How should File Uploads be handled in a GraphQL environment?

Difficulty:AdvancedTopic:Architecture & Storage

Two primary architectural approaches exist:

  1. GraphQL Multipart Request Spec: Sends operations and file binaries in a single multipart/form-data request using custom Upload scalars.
  2. 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?