|
@@ -2,11 +2,13 @@ require 'sinatra'
|
|
|
require 'securerandom'
|
|
|
require 'json'
|
|
|
|
|
|
+set :storage_directory, './storage/'
|
|
|
+
|
|
|
# create a room
|
|
|
|
|
|
post '/room' do
|
|
|
id = SecureRandom.hex(6)
|
|
|
- Dir.mkdir(id)
|
|
|
+ Dir.mkdir(settings.storage_directory+id)
|
|
|
content_type 'text/json'
|
|
|
{id: id}.to_json
|
|
|
end
|
|
@@ -14,9 +16,9 @@ end
|
|
|
# get room content
|
|
|
|
|
|
get '/room/:id' do |id|
|
|
|
- if Dir.exist?('./'+id)
|
|
|
+ if Dir.exist?(settings.storage_directory+id)
|
|
|
content_type 'text/json'
|
|
|
- Dir.glob('./'+id+'/*').map { |f| File.basename(f)}.to_json
|
|
|
+ Dir.glob(settings.storage_directory+id+'/*').map { |f| File.basename(f)}.to_json
|
|
|
else
|
|
|
404
|
|
|
end
|
|
@@ -31,7 +33,7 @@ post '/room/:id' do |id|
|
|
|
403
|
|
|
return
|
|
|
end
|
|
|
- FileUtils.cp(tmpfile, "./"+id+"/"+name)
|
|
|
+ FileUtils.cp(tmpfile, settings.storage_directory+id+"/"+name)
|
|
|
200
|
|
|
end
|
|
|
|
|
@@ -43,11 +45,11 @@ end
|
|
|
# get a file
|
|
|
|
|
|
get '/room/:id/:filename' do |id, filename|
|
|
|
- send_file File.join('./'+id, filename)
|
|
|
+ send_file File.join(settings.storage_directory+id, filename)
|
|
|
end
|
|
|
|
|
|
# remove a file
|
|
|
|
|
|
delete '/room/:id/:filename' do |id, filename|
|
|
|
- FileUtils.rm("./"+id+"/"+filename)
|
|
|
+ FileUtils.rm(settings.storage_directory+id+"/"+filename)
|
|
|
end
|