我在Ruby 2.3.1中有一个项目,目前正在使用我要上传文件的文件夹的绝对路径。我想使用的是相对路径。 我想知道如何在Ruby config.rb中设置根目录/,这样当我需要文件夹的相对路径时可以调用 root_dir +'/ public /文件'
该项目是一个Ruby RESTFull API,可与Solr一起使用以进行索引/搜索PDF文件。该应用程序是Sinatra和Rsolr的自定义应用程序。 该API具有指向文件夹的上传功能。
我的上传脚本:
post '/api/uploads' do
#puts params
fns = params['files'].map {|f| f[:filename]}.join(";")
param = fns.chomp.split(";")
#find pdf files
param.select! {|f| f =~ /.*\.pdf/}
array_length = param.length # or $param.size
puts "length of $param is : #{array_length}"
if(array_length==0)
raise( "files not pdf: #{fns}")
end
i = 0
resp = []
while i.to_i < array_length do
puts i
filename = params[:documents][i][:filename]
tmpfile = params[:documents][i][:tempfile]
target = settings.homedir+'/'+filename
localpath = File.join(settings.filesdir, filename)
File.open(localpath, 'wb') do |f|
f.write tmpfile.read
end
resp << {:fileurl => target}
i = i + 1
end
我的config.rb:
set :root, File.dirname(__FILE__)
set :filesdir, 'absolute_path/public/documents/pdf' # Set pdf files folder absolute path
set :homedir, '/pdf' # Set pdf home directory
set :solrbase, 'http://localhost:8983/solr/' # Set Solr connection path
set :solrcore, 'docs' # Set name of the Solr core
set :bind, '0.0.0.0'
set :port, 3003 # Set port of the API
set :show_exceptions, false
configure do
mime_type :pdf, 'application/pdf'
end
我不想写绝对路径并获得相对路径,例如,另一个开发人员可以立即使用它,而无需再次设置绝对路径。