アップロードしたファイルはすべて、一時的にフォルダーに保存されます/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