Selamün Aleyküm;
Zaman zaman lazım olur ve Python üzerinden Basit Dosya Sunucu (simple file server) kullanırdım. Go dili (go lang) “net/http” paketini kullanarak bunun yapılabileceğini gördüm.
Basit dosya sunucusunu (simple file server), bilgisayarlar arası, geçici süreyle, dosya veya html/yazı tabanlı ( la negada zormuş Türkçe sini bulmak! text/html based ) bilgi paylaşımı amacıyla kullanılır. Python dakini tecrübe ettim, çok kişi aynı anda kullandığımızda bazen hizmet – cevap vermediğini gördüm fakat, GoLang üzerindekini henüz çok kişi ile deneyemedim !
Öncelikle bilgisayarınızda Python ve/veya GoLang kurulu olduğunu varsayıyorum. Eğer Python kurulu değilse
sudo apt-get install -y python
satırı ile kurulum yapabilirsiniz. GoLang kurulu değilse, “Debian türevleri (Ubuntu-LinuxMint vb) üzerinde GoLang kurulumu ve Merhaba Dünya !” yazımıza bakarak kurulum yapabilirsiniz.
Terminali açın, paylaşım vermek istediğiniz dosyaya gidin.
- Python da çalıştırmak için, direk terminalde iken;
sudo python -m SimpleHTTPServer 81
yazın ve Enter e basın.
- Go dilinde bu işi yapmak için yeni bir dosya açalım;
nano basitDosyaSunucu.go
- Aşağıdaki kodları yapıştırın.
package main
import "net/http"
func main() {
http.ListenAndServe(":81", http.FileServer(http.Dir(".")))
}
Kaydedip kapatmak için, “Ctrl ve X” tuşlarına bastıktan sonra, kaydedeyim mi diye sorar. Olumlu cevap verin üzülmesin 🙂 “Y” veya “E” tuşuna bastıktan sonra iki kere Enter tuşuna basın.
- Terminaliniz açıkken
go run basitDosyaSunucu.go
yazıp Enter tuşuna basın.
Hepsi bu kadar. Artık internet tarayıcınızın adres satırına http://0.0.0.0:81 ( veya bu makine ağ da ise, o makinanın ip adresini) yazın ve Enter e basın. Bulunduğunuz dizini ve içeriğini, tarayıcınız üzerinde görmelisiniz.

Aşağıdaki görsel benim Rasberry Pi cihazım üzerindeki, Raspbian a ait. Ağımdaki cihazın ip adresini tarayıcıya yazdım. Soldaki Python için ve sağdaki go lang için göründüğü hali. Sizdeki çıktıda görsel ( dosyaların listelenmesi vb ) olarak bunlara benzemeli.

Bunun gibi diğer Go yardımcılarını toparladığım yazıma ( “GoLang ile yazdığım yardımcı methodlar (helper function)” ) bakabilirsiniz. Github linki –> https://github.com/makseli/goLang_yardimcilar
Sorunuz varsa, yorum bölümünü kullanabilirsiniz. Diğer içeriklerde görüşmek üzere…