andresoviedo / google-drive-ftp-adapter

Google Drive FTP Adapter to connect to google drive through the FTP protocol
GNU Lesser General Public License v3.0
395 stars 93 forks source link
drive-files driver filezilla ftp ftp-adapter ftp-client ftp-protocol ftp-server google-drive google-drive-api java

google-drive-ftp-adapter

codeship badge

alt tag

News

Latest Release v1.6.2 - 27/10/2018

Latest fixes:

Online service (ftp/ftps) - 17/08/2018

About

Features

Screenshots

alt tag alt tag alt tag alt tag alt tag alt tag

Notes

Downloads

Latest Release 1.6.2 - 27/10/2018

Download Java 8 from http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html

Buid It!

Install java 8 and maven 3. Then execute the following commands in the terminal:

git clone https://github.com/andresoviedo/google-drive-ftp-adapter.git
cd google-drive-ftp-adapter
mvn clean package

Run it!

Double click on file google-drive-ftp-adapter-jar-with-dependencies.jar or execute the following command in the terminal:

java -jar google-drive-ftp-adapter-jar-with-dependencies.jar

Once the application is started, Google with request authorization through your browser to allow Google Drive FTP access to your data. Click "OK".

Test it!

Open ftp://user:user@localhost:1821/ in your browser to connect to your Google Drive.

Or open terminal and type "ftp localhost 1821": Type "user" as the username and "user" as password. Once in FTP, type "dir" to see your drive files.

$ ftp localhost 1821
Connected to localhost.
220 Service ready for new user.
Name (localhost:andres): user
331 User name okay, need password for user.
Password:
230 User logged in, proceed.
Remote system type is UNIX.
$ ftp> dir
200 Command PORT okay.
150 File status okay; about to open data connection.
drwx------   0 uknown no_group            0 Nov 16  2013 SOFTWARE
drwx------   0 uknown no_group            0 Oct 29  2013 NEXUS7
drwx------   0 uknown no_group            0 Oct 19  2013 MUSIC
-rw-------   0 uknown no_group      5348582 Apr 30 22:15 Dr. Toast - Light.mp3
-rw-------   0 uknown no_group      1936326 Dec 21  2014 avatar2.jpg
226 Closing data connection
$ ftp>

Application Configuration

The application works fine without configuration. However, a default 'configuration.properties' file is provided in case you want to configure application.

For the full list of parameters and example check file : configuration.properties

Here are the main application parameters you can customize:

# TCP port where the application will listen for incoming connections 
port=1821

# FTP anonymous login
ftp.anonymous.enabled=false
ftp.anonymous.home=
ftp.anonymous.rights=pwd|cd|dir|put|get|rename|delete|mkdir|rmdir|append

# FTP users credentials
ftp.user=user
ftp.pass=user
ftp.home=
ftp.rights=pwd|cd|dir|put|get|rename|delete|mkdir|rmdir|append

To configure application just put 'configuration.properties' in the same folder. If you want, you can also customize the path of the 'configuration.properties' when launching the app:

$ java -jar google-drive-ftp-adapter.jar [propertiesFilename] 

F.A.Q.

Known Issues

Disclaimer

Project Info ============

This application lets you connect your FTP applications to your Google Drive files through the FTP protocol rather than using the official Google Drive client.

This custom Google Drive client was created because the official client can't be reinstalled on a new PC without having to download all your drive files again. Also, because the official client does not support FAT32 partitions and I used to have all my files in one of this partitions.

So this application basically starts a FTP server in your local machine emulating that it is hosting your Google Drive files, acting as a gateway. Once this setup is done, you can connect any FTP client to connect to your Google Drive files. I use it in conjunction with Beyond Compare to compare my local files and compare them to ones I have in the Google Drive cloud.

You are free to use this program while you keep this file and the authoring comments in the code. Any comments and suggestions are welcome.

Get Involved

If you want to contribute you can start by solving the the current issues or opening a new one.

Contact Information

Contact

Donations

If you like this project, please consider buying me a beer :)

Change Log

(f) fixed, (i) improved, (n) new feature