Implementing image uploads
After implementing authentication in our GraphQL API and protecting the queries and mutations, let's now implement image uploading that will be used to upload the user's profile photo and cover image.
We'll see how to implement file uploading with Apollo Server and stream the images to storage services, such as Amazon S3 or DigitalOcean Spaces Object Storage. We'll be using this last service, but feel free to use Amazon S3 if you prefer that or any S3-compatible object storage service.
Before that, make sure to sign up for your chosen S3 compatible service, create an S3 bucket, and take note of the following information:
S3_ACCESS_KEY_ID
S3_SECRET_ACCESS_KEY
S3_ENDPOINT
S3_BUCKET
Using the server URL, bucket name (or Space name), access key, and secret, you can connect any S3-compatible client or library to your DigitalOcean Space. A Space is equivalent to a bucket.
The DigitalOcean Spaces API is interoperable...