The-Debarghya / goftpd

FTP implementation

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Go FTPd

  • A fully functional FTP client and server module written in Golang.
  • Currently supported commands are as follows:
    • cd: Changes directory in remote context
    • pwd: Prints current remote directory
    • ls: lists all Files/directories in current remote directory
    • cat: display contents of a particular file
    • del: delete a remote file
    • get: download a remote file
    • put: upload a local file

Usage:

  • Clone the repository with:
git clone https://github.com/The-Debarghya/goftpd
  • Move to the server directory and compile with: go build .
  • Add username and encrypted-password hashes(AES-256) along with the key in creds.json file.
  • Make two directories named ftp and ftpfiles in the directory above server or client.(These 2 directories actually work as work directories for server and client respectively.)
  • Start the server first.
  • Next switch to another console tab and move to client directory and compile with: go build .
  • Now run the client.
  • The above mentioned steps works fine for localhost connections. To setup server to accept connections over same network, change the HOST constant to the required IP address in client.go file:
const (
	HOST = "localhost"
	PORT = "9999"
	BUFFSIZE = 5120
)

About

FTP implementation


Languages

Language:Go 100.0%