- A fully functional FTP
client
andserver
module written in Golang. - Currently supported commands are as follows:
cd
: Changes directory in remote contextpwd
: Prints current remote directoryls
: lists all Files/directories in current remote directorycat
: display contents of a particular filedel
: delete a remote fileget
: download a remote fileput
: upload a local file
- 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
andftpfiles
in the directory aboveserver
orclient
.(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 inclient.go
file:
const (
HOST = "localhost"
PORT = "9999"
BUFFSIZE = 5120
)