01 Şubat 2007

sharehttp

Bilgisayarlar arasında dosya transferi her zaman gerekiyor. Evimizde özellikle ağdan devamlı dosya transferi ihtiyacı duyarız. Her şeyi ayarlanmış bilgisayarlarımız varsa dosyaları kolayca paylaşırız ama devamlı yeni sistem kuruyorsak paylaşmak gıcık bir işlemdir (samba, nfs, ftp hiçbiri yokken ve kurmak istemiyorsak).
Ağdaki başka bir bilgisayardan dosya almak için http iyi bir seçim, çünkü her bilgisayarda browser ya da wget gibi araçlar var.

Dosya sunan http server ruby ile birkaç satırda yapılabiliyor. Aşağıdaki kodu sharehttp ismiyle kaydedip çalıştırma izni verdikten sonra normal bir program gibi (sisteminizde ruby yüklüyse) kullanabilirsiniz.

#!/usr/bin/ruby
#Alp OZKUL, Feb 2007

if ARGV.length == 0
port = 4000
path = Dir::pwd
elsif ARGV.length == 1
if ARGV[0] == "-h" || ARGV[0] == "--help" || ARGV[0] == "-help"
puts " Usage: sharehttp [PATH] [PORT]"
puts " Default values are PORT=4000, PATH=current working directory"
exit
end
port = 4000
path = ARGV[0]
elsif ARGV.length == 2
port = ARGV[1].to_i
path = ARGV[0]
else
exit
end

puts "(CTRL+C to exit)"
puts "PATH: #{path}"
puts "PORT: #{port}"

require 'webrick'
include WEBrick

server = HTTPServer.new(
:Port => port,
:DocumentRoot => path
)

trap("INT"){ server.shutdown }
server.start
Kullanmak için /usr/bin/sharehttp olarak kaydedip, çalıştırma izni verebilirsiniz(ya da PATH inizde istediğiniz bir yere). Mesela /home/alp dizinini paylaşmak istiyorum:
sharehttp /home/alp
Browserdan http://localhost:4000 e girip dizinin listelenmiş olduğunu göreceksiniz.

3 yorum:

Adsız dedi ki...

Kendi makinemizden erişebiliyoruz fakat ağdaki diğer makineler ip.adresi/4000 yazınca erişemiyor?

Alp dedi ki...

Başka makinelerden de erişebiliyoruz. Senin sisteminde firewall kurulu olabilir. Ya da doğru erişmeye çalıştığından emin misin?

http://192.168.1.6:4000

gibi..

Adsız dedi ki...

Evet adresi dediğin gibi yazıyorum. Üstteki yoruma yazarken yanlış yazmışım. Fakat erişilemiyor yine de. Sanırım farklı bir problem var. Zira samba ile paylaştırdığım klasörleri yine windows makineler göremiyor.