Warm tip: This article is reproduced from serverfault.com, please click

How does an AWS S3 POST object form initiate an upload

发布于 2020-11-30 17:18:51

I’m uploading images from a user’s device to a S3 bucket using POST object from a HTML form. Everything is working fine but I don’t understand how the S3 server can initiate an upload from a client browser after the form data (file name, signature, policy, etc.) has been posted to its URL. The image data is in a file on the client device and is not contained in the form, only the file name is there. Where in the process is the upload started and how does the S3 server tell the client browser to upload the image data? Perhaps there’s more communication between the web server and browser during a post/response that I’m not aware of. Any insight would be appreciated.

Questioner
glez
Viewed
0
glez 2020-12-08 01:58:07

Further research has shown that the browser itself automatically formats each file as a part of the form submission when the form has an input type="file" control. The file becomes an intrinsic part of the form data submitted and the server side processing knows to look for it as such.

HTML4 input type="file" spec

"The following example shows how the contents of a user-specified file may be submitted with a form. The user is prompted for his or her name and a list of file names whose contents should be submitted with the form. By specifying the enctype value of "multipart/form-data", each file's contents will be packaged for submission in a separate section of a multipart document."