- 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
- 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
)