Спасибо, да вы правы. Поставил в Config.ru и оно вроде как запустилось. Лог показал:
>> Writing PID to /home/administrator/web/tmp/thin.pid
>> Thin web server (v1.3.1 codename Triple Espresso)
>> Maximum connections set to 1024
>> Listening on 192.168.0.14:4567, CTRL+C to stop
Но при попытке клиента подключиться вываливается ошибка:
!! Unexpected error while processing request: uninitialized constant Rack::MethodOverride::REQUEST_METHOD
Пока что сам смотрю... но если у кого есть идеи... рад услышать.
В итоге нашёл файл list.haml думаю здесь нужно покопаться?
- if @files.empty?
%h1 Файлов нет.
- else
.list
%h1 Список файлов
%table{ :cellspacing => 0}
%tr
%th Файл
%th Загружен
%th Скачан
%th Удалить
- @files.each do |file|
%tr
%td.filename
%a{ :href => "/#{file.sha}/#{file.id}?nowait=true", :title => file.filename }= file.filename
= "(#{file.filesize/1024} Kb)"
%a{ :href => "/#{file.sha}/#{file.id}" } Для пересылки
%td.created_at= file.created_at.strftime("%d %b")
%td.downloads= file.downloads
%td.delete
%a{ :href => "/#{file.sha}/#{file.id}/delete", :title => "Удалить", :onclick => "return ORLY();" } Удалить
.upload
%h1 Добавить
%form{ :name => "new_file", :enctype => "multipart/form-data", :method => "post", :action => "/" }
%input{ :name => "file", :type => "file" }
%br
%input{ :type => "submit", :value => "Закачать" }
#init.rb
require 'rubygems'
require 'logger'
require 'ftools'
require 'dm-core'
require 'dm-validations'
require 'dm-timestamps'
require File.expand_path(File.dirname(__FILE__) + '/lib/stored_file')
require File.expand_path(File.dirname(__FILE__) + '/lib/sinatra/lib/sinatra')
require File.expand_path(File.dirname(__FILE__) + '/config/config')
require File.expand_path(File.dirname(__FILE__) + '/lib/authorization')
helpers do
include Sinatra::Authorization
end
get '/' do
require_administrative_privileges
@files = StoredFile.all
haml :list
end
post '/' do
require_administrative_privileges
tempfile = params['file'][:tempfile]
filename = params['file'][:filename]
digest = Digest::SHA1.hexdigest(filename)
@file = StoredFile.create :filename => filename, :sha => digest, :filesize => File.size(tempfile.path)
File.copy(tempfile.path, "./files/#{@file.id}.upload")
redirect '/'
end
get '/style.css' do
response['Content-Type'] = 'text/css; charset=utf-8'
sass :style
end
get '/:sha/:id' do
@file = StoredFile.first :sha => params[:sha], :id => params[:id]
unless params[:nowait] == 'true'
haml :download
else
@file.downloads += 1
@file.save
send_file "./files/#{@file.id}.upload", :filename => @file.filename, :type => 'Application/octet-stream'
end
end
# delete file
get '/:sha/:id/delete' do
require_administrative_privileges
@file = StoredFile.first :sha => params[:sha], :id => params[:id]
File.delete("./files/#{@file.id}.upload")
@file.destroy
redirect '/'
end