Skip to content

Instantly share code, notes, and snippets.

@henriquemenezes
Last active September 12, 2023 20:19
Show Gist options
  • Star 21 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save henriquemenezes/61ab0a0e5b54d309194c to your computer and use it in GitHub Desktop.
Save henriquemenezes/61ab0a0e5b54d309194c to your computer and use it in GitHub Desktop.
Using CURL to Upload Files
# curl - Raw upload
curl -X PUT -T image.png https://example.com/upload
# curl - Content-Type: multipart/form-data
curl -F name=logo -F file=@image.png https://example.org/upload
# curl - POST presigned URL (S3)
curl -F "key=uploads/image.png"
-F "acl=public-read"
-F "AWSAccessKeyId=2EO6H8MX1X8YWEA0V432"
-F "Policy=eyAiZXhwaXshdGlvbpI6ICIyMDA4LTErLTAxVDtyOjAwOjAwLjAsMFoiLAogICJjb25kaXRpb25zPjogWwoJeyJidWNrZXQiOiAiczNwaG90b3MubW9hcHAubmV0IiB9LAogICAgWyJzdGFydHMtd2l0aCIsICIka2V5IiwgIkxpdmVTaG90cy8iXSwKICAgIHsiYWNsIjogInB1YmxpYy1yZWFkIiB9LAoJWyJlcSIsICIkQ29udGVudC1UeXBlIiwgImltYWdlL2pwZWciXSwKICBdCn0K"
-F "Signature=20uh08kU75ADHL49NyhYRgZW8BY="
-F "Content-Type=image/png"
-F "file=@current_screenshot.jpg"
https://bucket-name.s3-us-west-2.amazonaws.com
# curl PUT presigned URL (S3)
curl -XPUT -T aws.jpg
-H "Content-Type: image/png"
"https://bucket-name.s3.amazonaws.com/img.jpg?x-amz-acl=public-read&content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20170829T164552Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3599&X-Amz-Credential=AKIAIHXZTCWOPM536M5A%2F20170829%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=5aae7e1d151a371eb41f122290cfef6ba279bc387ae15ca94caad6737200d72d"
# httpie - POST presigned URL (S3)
http -v --form https://bucket-name.s3-us-west-2.amazonaws.com
file@~/Pictures/image.png
acl=public-read
key=uploads/46d64d10-f6a6-40e7-a1e7-f71b2151493a/\${filename}
policy=eyX2FjdGlvbl91y...vdXMtd2VDAxMTE0NFoifV19
success_action_status=201
x-amz-algorithm=AWS4-HMAC-SHA256
x-amz-credential=AISOASA5/20151202/us-west-2/s3/aws4_request
x-amz-date=20151202T011144Z
x-amz-meta-original-filename=\${filename}
x-amz-signature=42b94dfd...4ca22817b
# curl - POST presigned URL (S3)
curl -F "key=20180502185107-5f310dcf-cc7a-4cce-9ea2-30f266057b10.jpg" \
-F "acl=public-read" \
-F "Content-Type=image/jpg" \
-F "Expires=Wed, 02 May 2018 19:06:07 GMT" \
-F "Policy=eyJleHBpcmF0aW9uIjoiMjAxOC0wNS0wMlQxOTo1MTowN1oiLCJjb25kaXRpb25zIjpbeyJidWNrZXQiOiJwZWdvdS1kZXYtdXBsb2FkcyJ9LHsia2V5IjoiMjAxODA1MDIxODUxMDctNWYzMTBkY2YtY2M3YS00Y2NlLTllYTItMzBmMjY2MDU3YjEwLmpwZyJ9LHsiQ29udGVudC1UeXBlIjoiaW1hZ2UvanBnIn0seyJhY2wiOiJwdWJsaWMtcmVhZCJ9LHsiRXhwaXJlcyI6IldlZCwgMDIgTWF5IDIwMTggMTk6MDY6MDcgR01UIn0seyJ4LWFtei1jcmVkZW50aWFsIjoiQUtJQUpTMjIySlM2WjZCTUZVWUEvMjAxODA1MDIvdXMtZWFzdC0xL3MzL2F3czRfcmVxdWVzdCJ9LHsieC1hbXotYWxnb3JpdGhtIjoiQVdTNC1ITUFDLVNIQTI1NiJ9LHsieC1hbXotZGF0ZSI6IjIwMTgwNTAyVDE4NTEwN1oifV19" \
-F "x-amz-credential=AKIAJS222JS6Z6BMFUYA/20180502/us-east-1/s3/aws4_request" \
-F "x-amz-algorithm=AWS4-HMAC-SHA256" \
-F "x-amz-date=20180502T185107Z" \
-F "x-amz-signature=b65c98fd75862a38ef7a76dfc060023c04a58180c889c3b45baf8bea5acd78b8" \
-F "file=@mesa_logo.png" \
https://example-dev-uploads.s3.amazonaws.com
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment