我可以在本地计算机上上传正在开发中的图像,并且有时在服务器上启动时上传会失败。
我的设置是DigitalOcean上的rails drop,几乎没有变化。也就是说,使用Nginx和Unicorn。
这是日志的最后一部分:
I, [2014-06-15T07:19:14.456577 #17704] INFO -- : Started GET "/photos" for 99.28.124.182 at 2014-06-15 07:19:14 +0000
I, [2014-06-15T07:19:14.458123 #17704] INFO -- : Processing by PhotosController#index as HTML
I, [2014-06-15T07:19:14.537837 #17704] INFO -- : Rendered photos/index.html.erb within layouts/application (76.7ms)
I, [2014-06-15T07:19:14.540100 #17704] INFO -- : Completed 200 OK in 82ms (Views: 78.7ms | ActiveRecord: 1.0ms)
I, [2014-06-15T07:19:23.700892 #17645] INFO -- : Started GET "/photos/new" for 99.28.124.182 at 2014-06-15 07:19:23 +0000
I, [2014-06-15T07:19:23.703720 #17645] INFO -- : Processing by PhotosController#new as HTML
I, [2014-06-15T07:19:23.717503 #17645] INFO -- : Rendered photos/_form.html.erb (8.1ms)
I, [2014-06-15T07:19:23.717913 #17645] INFO -- : Rendered photos/new.html.erb within layouts/application (8.9ms)
I, [2014-06-15T07:19:23.720011 #17645] INFO -- : Completed 200 OK in 16ms (Views: 11.7ms | ActiveRecord: 0.5ms)
I, [2014-06-15T07:27:53.659373 #17704] INFO -- : Started POST "/photos" for 99.28.124.182 at 2014-06-15 07:27:53 +0000
I, [2014-06-15T07:27:53.661330 #17704] INFO -- : Processing by PhotosController#create as HTML
I, [2014-06-15T07:27:53.661460 #17704] INFO -- : Parameters: {"utf8"=>"✓", "authenticity_token"=>"[removed]", "photo"=>{"image"=>#<ActionDispatch::Http::UploadedFile:0x0000000138eba8 @tempfile=#<Tempfile:/tmp/RackMultipart20140615-17704-kpatwj>, @original_filename="IMG_0078.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"photo[image]\"; filename=\"IMG_0078.jpg\"\r\nContent-Type: image/jpeg\r\n">, "description"=>"", "show_on_slideshow"=>"0", "show_on_gallery"=>"0"}, "commit"=>"Create Photo"}
I, [2014-06-15T07:27:53.671946 #17704] INFO -- : Command :: file -b --mime-type '/tmp/91ff30d4faf0a3803148a98cb7ae142420140615-17704-f93sr9'
I, [2014-06-15T07:27:53.673477 #17704] INFO -- : Completed 500 Internal Server Error in 12ms
F, [2014-06-15T07:27:53.676652 #17704] FATAL -- :
Errno::ENOMEM (Cannot allocate memory - file -b --mime-type '/tmp/91ff30d4faf0a3803148a98cb7ae142420140615-17704-f93sr9'):
app/models/photo.rb:14:in `check_file_size'
app/controllers/photos_controller.rb:32:in `create'
它指的是第32@photo = Photo.new(photo_params)
行,这里的行:
# POST /photos
# POST /photos.json
def create
hide_from_unauthenticated
@photo = Photo.new(photo_params)
respond_to do |format|
if @photo.save
format.html { redirect_to @photo, notice: 'Photo was successfully created.' }
format.json { render :show, status: :created, location: @photo }
else
format.html { render :new }
format.json { render json: @photo.errors, status: :unprocessable_entity }
end
end
end
您是否检查了服务器上当前的内存使用情况?当只剩下很少的内存时,经常会发生此问题。如您所说,这并非一直发生,因此我认为内存不足是主要原因。
如果无法立即为服务器添加更多内存,请尝试在服务器上添加交换分区也将有所帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句