Hello,
I am trying to upload a file from a HTML form, to a Rails app to finally go
to S3 but I keep getting this "No such file or directory" error.
My S3 policy is very generic with permissions for anonymous
uploads/downloads.
Any suggestions would be greatly appreciated.
Here's a snippet of the rails code that receives the web form and posts to
S3.
def uploadpic
uploaded_io = params[:pic]
File.open(('http://s3.amazonaws.com/heroku-rails-bucket/' +
uploaded_io.original_filename), 'wb') do |file|
file.write(uploaded_io.read)
end
end
Here's the generic web form code: /uploadfile.html
<html>
<head>
<title></title>
</head>
<body>
<form method="post" action="/uploadpic" enctype="multipart/form-data">
<input type="hidden" name="id" value="12345" />
<input type="file" name="pic" />
<input type="submit" />
</form>
</body>
</html>
I've added: require 'open-uri' at the beginning of this file and in the
Gemfile (as per another Stackoverflow post).
Is there any other gem that will make the S3 import work correctly?
Here's the heroku log file:
GET clearslide.heroku.com/fileupload.html dyno=web.1 queue=0 wait=0ms
service=7423ms status=200 bytes=371
2012-03-30T18:03:45+00:00 app[web.1]: cache: [GET /fileupload.html] miss
2012-03-30T18:03:45+00:00 heroku[nginx]: 67.164.91.9 - -
[30/Mar/2012:18:03:45 +0000] "GET /fileupload.html HTTP/1.1" 200 371 "-"
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.11 (KHTML,
like Gecko) Chrome/17.0.963.83 Safari/535.11" clearslide.heroku.com
2012-03-30T18:03:57+00:00 app[web.1]:
2012-03-30T18:03:57+00:00 app[web.1]: Started POST "/uploadpic" for
67.164.91.9 at 2012-03-30 11:03:57 -0700
2012-03-30T18:03:57+00:00 app[web.1]:
2012-03-30T18:03:57+00:00 app[web.1]: Parameters: {"id"=>"12345",
"pic"=>#<ActionDispatch::Http::UploadedFile:0x00000002d00460
@original_filename="Kabam3.png", @content_type="image/png",
@headers="Content-Disposition: form-data; name=\"pic\";
filename=\"Kabam3.png\"\r\nContent-Type: image/png\r\n",
@tempfile=#<File:/app/tmp/RackMultipart20120330-1-1k697hr>>}
2012-03-30T18:03:57+00:00 app[web.1]: Processing by
MessagesController#uploadpic as HTML
2012-03-30T18:03:57+00:00 app[web.1]: Completed 500 Internal Server Error
in 1ms
2012-03-30T18:03:57+00:00 app[web.1]: *Errno::ENOENT (No such file or
directory - http://s3.amazonaws.com/heroku-rails-bucket/Kabam3.png):*
2012-03-30T18:03:57+00:00 app[web.1]:
2012-03-30T18:03:57+00:00 app[web.1]:
app/controllers/messages_controller.rb:89:in `uploadpic'
--
You received this message because you are subscribed to the Google Groups
"Heroku" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/heroku/-/4-KhFgBbp2wJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/heroku?hl=en.