我在 Ruby 2.3.1 中有一个项目,目前我正在使用我上传文件的文件夹的绝对路径。我想改用的是相对路径。我想知道如何在 Ruby config.rb 中设置根目录 / 这样我就可以在需要 root_dir + '/public/files' 等文件夹的相对路径时调用
该项目是一个 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
我不想写绝对路径并获得相对路径,例如,另一个开发人员可以立即使用它而无需再次设置绝对路径。