S3 direct bucket upload: success but file not there

Turns out that all I needed to do was to make sure that the uploaded filename is included in the key that was being uploaded to S3.

If you have a form like this:

<form action="http://johnsmith.s3.amazonaws.com/" method="post" enctype="multipart/form-data">
  <input type="input" name="key" value="user/eric/" /><br />
  (...)
</form>

Then the file will be uploaded to user/eric. What tripped me up is that the key defined this way was an existing S3 folder. AWS made it seem like the upload was successful but probably just dropped the uploaded files as the key already existed. The solution was to include the filename in the key thusly:

<form action="http://johnsmith.s3.amazonaws.com/" method="post" enctype="multipart/form-data">
  <input type="input" name="key" value="user/eric/${filename}" /><br />
  (...)
</form>

Also see the Upload examples docs.