{ "info": { "author": "Tormod Landet", "author_email": "UNKNOWN", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: End Users/Desktop", "License :: OSI Approved :: BSD License", "License :: OSI Approved :: GNU General Public License (GPL)", "License :: OSI Approved :: Python Software Foundation License", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: System :: Archiving :: Mirroring" ], "description": "gdrive_sync\r\n************\r\n\r\nSynchronize directories between Google Drive and your local machine. \r\nYou can choose to synchronize only selected directories as opposed\r\nto other tools where you need to keep all files on your Google Drive\r\nin the same directory on your local computer in order for the \r\nsynchronization to work.\r\n\r\nThe intended use is to backup directories from multiple locations on\r\nyour own machine, each to its own separate directory on Google Drive.\r\n\r\nHow it works\r\n------------\r\n\r\nThe ``gdrive_sync`` program will first download all changes that have \r\nhappened on your Drive since it was first created. The first synchronization\r\nwill take equally long if you have one file with 1000 separate changes or\r\n1000 files you have uploaded and not changed afterwards.\r\n\r\nAfter the initial download of your change history ``gdrive_sync`` only\r\nneeds to download the changes that have occurred since the last time\r\nyou used the program. This is normally very fast.\r\n\r\nAfter downloading the change history you can get a list of differences\r\nbetween your backup on Google Drive and your local files. You can \r\n``sync-up`` to upload whatever changes you have made and new files added.\r\n\r\nThere is no ``sync-down`` functionality at the moment since the author of\r\nthis program has not needed that yet. It may be implemented later. Feel\r\nfree to submit a patch / pull request if you are tired of waiting for some\r\neasy-to-implement feature and decide to write it yourself.\r\n\r\nInstalling\r\n----------\r\n\r\nThe gdrive_sync program and underlying libraries are written in Python. \r\nThe program is tested on Python 2.7.3 on Ubuntu Linux and Python 2.7.2\r\non Windows 7. The code is written so that it should work on Mac OS also,\r\nbut this has not been tested. Compatibility with Python 2.6 has not been\r\ntested, it probably works with a few \"from __future__ import ...\" statements.\r\n\r\nYou can use the normal Python package managers, for example the\r\n`pip `_ tool, to install the program.\r\nYou do not need root or administrator access if you install inside a Python\r\n`virtualenv `_.\r\n\r\n pip install gdrive_sync\r\n\r\nYou can run either the supplied gdrive_sync executable script or run the Python\r\npackage directly from a Python executable that has ``gdrive_sync`` on the import\r\npath::\r\n\r\n gdrive_sync\r\n # or\r\n python -m gdrive_sync\r\n\r\nUsage\r\n-----\r\n \r\nFirst time you first need to update the local database with all changes to your \r\nDrive up to now::\r\n \r\n gdrive_sync update\r\n \r\nYou can then for example sync your pictures to the Pictures directory on Google\r\nDrive with your picture collection on /media/my_disk/Images. First see \r\ndifferences between the local and remote directory::\r\n \r\n gdrive_sync diff Pictures /media/my_disk/Images\r\n \r\nThe ``gdrive_sync`` command always expects the Google Drive directory name first\r\nand then the local directory as argument number two. You can skip both, the\r\ndefault is to synchronize the whole of your Drive (\"/\") with the local directory\r\n(\".\")::\r\n \r\n cd Drive\r\n gdrive_sync diff\r\n gdrive_sync sync-up\r\n \r\nAnd now you also know how to upload any changes :-)\r\n\r\nThe ``sync-up`` command will always run ``update``, then ``diff`` before it asks you if\r\nyou would like to continue. You can continue automatically with the ``-y`` switch to \r\n``sync-up`` and you must explicitly allow deleting (putting in Google Drive trash) files\r\nor folders with the ``-x`` switch. You can \"dry-run\" without actually doing anything to\r\nthe remote Drive with the ``-d`` switch.\r\n \r\nLimitations\r\n-----------\r\n \r\n1) The program assumes that your Drive is a DAG (directed acyclic graph), where\r\n each file and directory is present in one and only one directory. This is\r\n normally the case. UPDATE: this is (mostly?) fixed in version 0.6 \r\n \r\n2) The program can currently only upload (``sync-up``), not download (``sync-down``). (1)\r\n\r\n3) The program is tested briefly and appears to work, but it might eat your files and\r\n I take no responsibility for that. That being said it is just the ``sync-up`` \r\n command that actually changes anything on your drive, the other commands are\r\n read-only. The ``diff`` command does not even connect to Google Drive at all.\r\n No files will ever be deleted (just put in trash), but files will be overwritten\r\n if the program detects that the file has changed.\r\n\r\n 1: If I ever have use for that functionality I will implement it. It should be\r\n quite simple.\r\n \r\nDevelopment\r\n-----------\r\n\r\nDevelopment happens at https://bitbucket.org/trlandet/gdrive_sync. There is only one main\r\ndevelopment branch and no stable branch. For the code style PEP8 is followed, except for\r\nthe strict 80 characters line length requirement. \r\n\r\nFeel free to submit patches / pull requests as long as you feel comfortable with licensing\r\nyour code under the same three licenses as gdrive_sync (see License below). Simple five line\r\nfixes to make the code run on Python 2.6 are appreciated, huge changes to make it run on\r\nPython 2.3 are perhaps less so. I will seriously consider support for Python 3.3 if it is not\r\nvery invasive.\r\n\r\nVersion history\r\n---------------\r\n\r\n2014-11-10 - version 0.6\r\n~~~~~~~~~~~~~~~~~~~~~~~~\r\n\r\nBetter support for real world drives and data. Huge thanks to Philipp Dreimann for most of the code!\r\n\r\n- Changes by Philipp Dreimann to support multiple roots (non-DAG drive layouts) which are common for some reason\r\n- Changes by Philipp Dreimann to use a much smarter MIME type selection\r\n- Support excluding paths based on regular expressions\r\n- Bugfixes for various problems when starting the program for the first time\r\n\r\n2013-03-21 - version 0.5\r\n~~~~~~~~~~~~~~~~~~~~~~~~\r\n\r\nInitial semi-working release\r\n\r\n- Can download list of changes and store the current state of the Google Drive\r\n- Can find differences between local and remote Drive\r\n- Can upload any missing files to the remote Drive\r\n- Can delete (put in trash) files or folders on the remote drive\r\n\r\nThe program will still output some debug trash on the command line and will crash\r\nwith a stack traces every so often. I still use it for my backup, so it kind of\r\nworks... YMMV\r\n\r\nLicense\r\n-------\r\n\r\nThe code is copyright 2013 Tormod Landet and is released under the BSD (3 clause)/Python (PSFL)/GPL (2+) license", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/trlandet/gdrive_sync", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "gdrive_sync", "package_url": "https://pypi.org/project/gdrive_sync/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/gdrive_sync/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://bitbucket.org/trlandet/gdrive_sync" }, "release_url": "https://pypi.org/project/gdrive_sync/0.6.1/", "requires_dist": null, "requires_python": null, "summary": "Sync directories between your computer and Google Drive", "version": "0.6.1" }, "last_serial": 1301460, "releases": { "0.5": [ { "comment_text": "", "digests": { "md5": "a38be0d6dfb35df00af071c3ce6c40ce", "sha256": "e569d499720c0f873a3fb820782a38cfdfd5d804598a3dd7e55684f6942f24d2" }, "downloads": -1, "filename": "gdrive_sync-0.5.tar.gz", "has_sig": false, "md5_digest": "a38be0d6dfb35df00af071c3ce6c40ce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16657, "upload_time": "2013-03-21T21:25:24", "url": "https://files.pythonhosted.org/packages/9c/62/64276f07dbe45f981bc4b2d8ccab2498c3aacbfe185758231471944aff55/gdrive_sync-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "ebf664097df4b7969b9eeccd8d0dc22a", "sha256": "9ef3a71c59512881c010a7a5a929e5ab1d7bdb83a328afa48b5a87981ae24b8a" }, "downloads": -1, "filename": "gdrive_sync-0.6.tar.gz", "has_sig": false, "md5_digest": "ebf664097df4b7969b9eeccd8d0dc22a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17527, "upload_time": "2014-11-10T19:43:24", "url": "https://files.pythonhosted.org/packages/c3/73/0d1b55eac6c9890cb811fba54ae4c2b19b0e06892dbed22e2dcdba5023fb/gdrive_sync-0.6.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "f72f7b4e50d32a14590d4d6545874740", "sha256": "67a54bc51528d14764382cf4be6bc2b2bb134402e1a36b939903753cef7aef90" }, "downloads": -1, "filename": "gdrive_sync-0.6.1.tar.gz", "has_sig": false, "md5_digest": "f72f7b4e50d32a14590d4d6545874740", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17529, "upload_time": "2014-11-10T20:20:53", "url": "https://files.pythonhosted.org/packages/25/17/7bd7b206b8ce398135ad48119b7850cd7653a9177570e7a6dbd6cbe1adb7/gdrive_sync-0.6.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f72f7b4e50d32a14590d4d6545874740", "sha256": "67a54bc51528d14764382cf4be6bc2b2bb134402e1a36b939903753cef7aef90" }, "downloads": -1, "filename": "gdrive_sync-0.6.1.tar.gz", "has_sig": false, "md5_digest": "f72f7b4e50d32a14590d4d6545874740", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17529, "upload_time": "2014-11-10T20:20:53", "url": "https://files.pythonhosted.org/packages/25/17/7bd7b206b8ce398135ad48119b7850cd7653a9177570e7a6dbd6cbe1adb7/gdrive_sync-0.6.1.tar.gz" } ] }