我在java中有一个客户端,它发送带有视频文件的表单发布请求。
我在POST后进入服务器:
Parameters: {"video"=>#<ActionDispatch::Http::UploadedFile:0x007f26783b49d0
@original_filename="video", @content_type=nil,
@headers="Content-Disposition: form-data; name=\"video\"; filename=\"video\"\r\n",
@tempfile=#<Tempfile:/tmp/RackMultipart20160405-3-106c9nr>>, "id"=>"36"}
我正在尝试使用以下行将文件保存到s3: 我知道连接和实际保存工作,因为我尝试使用base64字符串作为参数,它运行良好。
body = params[:video].tempfile
video_temp_file = write_to_file(body)
VideoUploader.new.upload_video_to_s3(video_temp_file, params[:id].to_s+'.mp4')
我在s3上看到空文件或24个字节。 我哪里做错了?
编辑:我正在使用carrierwave:
def write_to_file(content)
thumbnail_file = Tempfile.new(['video','.mp4'])
thumbnail_file.binmode # note that the tempfile must be in binary mode
thumbnail_file.write content
thumbnail_file.rewind
thumbnail_file
end