我所有上传的文件都临时存储在文件夹中/tmp
。
我想更改这个文件夹,因为/tmp
文件夹太小了。上传文件并在上传后将其移动到其他地方对我没有帮助。
我已经尝试将ENV['TMPDIR']
、ENV['TMP']
和更改ENV['TEMP']
为其他内容,但我上传的文件 (RackMultipart*) 仍临时存储在/tmp
.
我怎样才能改变这种行为?当然,我可以将它挂载/tmp
到其他地方,但告诉 Rails/Rack/Thin/Apache/... 将文件存储在哪里会更容易。我没有使用回形针等。
对于我的服务器,我使用 Apache 作为代理平衡器将流量传递到 4 个瘦服务器。
我有一个使用 ruby 2.0 的 Rails 4 rc1 项目。
编辑:
def create
file = params[:sample_file][:files].first
md5_filename = Digest::MD5.hexdigest(file.original_filename)
samples = Sample.where("name in (?)", params["samples_#{md5_filename}"].map {|exp| exp.split(" (").first}) rescue []
file_kind = FileKind.find(params[:file_kind])
@sample_file = SampleFile.new
@sample_file.file_kind = file_kind
@sample_file.samples = samples
@sample_file.original_file_name = file.original_filename
@sample_file.uploaded_file = file #TODO: ..
@sample_file.user = current_user
...
#many other stuff
...
respond_to do |format|
if @sample_file.save
format.html {
render :json => [@sample_file.to_jq_upload].to_json,
:content_type => 'text/html',
:layout => false
}
format.json { render json: {files: [@sample_file.to_jq_upload]}, status: :created, location: @sample_file }
else
format.html { render action: 'new' }
format.json { render json: {files: [@sample_file.to_jq_upload]}.to_json, status: :ok}
end
end
end