GoLang ve Python üzerinden Basit Dosya Sunucu – simple file server

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.

  1. Python da çalıştırmak için, direk terminalde iken;
    sudo python -m SimpleHTTPServer 81

    yazın ve Enter e basın.

  2. Go dilinde bu işi yapmak için yeni bir dosya açalım;
    nano basitDosyaSunucu.go
  3. 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.

  4. 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…