{ "info": { "author": "Chris Horsley", "author_email": "chris.horsley@csirtfoundry.com", "bugtrack_url": null, "classifiers": [], "description": "sftpsyncer\n----------\n\nSynchronise files piecemeal back and forth between a local cache and a remote\nSFTP server.\n\nUse case\n========\n\nYou have a client that sometimes needs to syncronise files to and\nfrom an SFTP server.\n\n* open() a file whether it's remote or local.\n * If the file is available locally, use the local copy.\n * If the local file doesn't exist, download it and then use the local copy.\n* add() files to an upload package, then push() to upload all locally queued\n files.\n\nThis model is simplistic, and will clobber any changes at the other end if\na file with the same name exists. If you want to avoid that, you may be better\noff using Git or the like.\n\nHow to use::\n\n import sftpsyncer\n from sftpsyncer import syncagent\n\n sagent = syncagent(hostname=\"remote_sagenth.example.com\", host_port=\"1222\",\n username=\"theuser\", key_path=\"/home/theuser/.sagenth/key\",\n local_root=\"/tmp/cache\", remote_root=\"/upload_target\")\n\n # upload local files\n\n sagent.upload_queue.add(\"myfile.txt\")\n sagent.upload_queue.add(\"docs/readme.txt\")\n\n sagent.push() # upload whether or not remote files exist\n\n # auto-get remote files, reading from cache when available\n\n fh1 = sagent.open(\"myfile.txt\") # file is already local, return local fh\n fh2 = sagent.open(\"remote.txt\") # file is not local, transfer to local cache, return local fh\n\n # exceptions\n\n try:\n fh3 = sagent.open(\"not_anywhere.txt\")\n except sftpsyncer.exceptions.FileNotFound as e:\n print \"File does not exist on local or remote\"\n\n try:\n fh5 = sagent.open(\"ssh_server_unavailable.txt\")\n except sftpsyncer.exceptions.ConnectionError as e:\n print \"Remote SFTP service appears to be unavailable\"", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://bitbucket.org/dsms/sftpsyncher/", "keywords": null, "license": "LICENSE.txt", "maintainer": null, "maintainer_email": null, "name": "sftpsyncer", "package_url": "https://pypi.org/project/sftpsyncer/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/sftpsyncer/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://bitbucket.org/dsms/sftpsyncher/" }, "release_url": "https://pypi.org/project/sftpsyncer/0.1.12/", "requires_dist": null, "requires_python": null, "summary": "Synchronise files between a local cache and an SFTP server", "version": "0.1.12" }, "last_serial": 2310384, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "6024a05470692b8e6f583a96ecfeedae", "sha256": "5568f94d8a9f134cfc9c1ff14a22c1cd4720c796453ebdbb6fc79f700c53bc2b" }, "downloads": -1, "filename": "sftpsyncer-0.1.0.tar.gz", "has_sig": false, "md5_digest": "6024a05470692b8e6f583a96ecfeedae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8104, "upload_time": "2014-10-22T02:11:49", "url": "https://files.pythonhosted.org/packages/7d/53/9ad8e4bf746eff54036fd03eaa61d446abe9024a46c17b2a1fddaa78c259/sftpsyncer-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "e94291fcf9f469595e961e2b4307c4cc", "sha256": "41e5cf7639515ad3584fa0d46aaea6420791ba1a64446739b9006d9bbbb693ab" }, "downloads": -1, "filename": "sftpsyncer-0.1.1.tar.gz", "has_sig": false, "md5_digest": "e94291fcf9f469595e961e2b4307c4cc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10552, "upload_time": "2014-10-22T22:40:47", "url": "https://files.pythonhosted.org/packages/ca/c6/9d994f08314d255b284326f7db8dafe7e069f3ee728dd76aed0d2bdede18/sftpsyncer-0.1.1.tar.gz" } ], "0.1.10": [ { "comment_text": "", "digests": { "md5": "12ef88bedb88db40d7b0ede8ac85cfda", "sha256": "90fe35bc2fae7b6c4d25806e04604eb2ccee797840a7fcf01ac5792580bc6fcd" }, "downloads": -1, "filename": "sftpsyncer-0.1.10.tar.gz", "has_sig": false, "md5_digest": "12ef88bedb88db40d7b0ede8ac85cfda", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11334, "upload_time": "2015-07-29T08:04:23", "url": "https://files.pythonhosted.org/packages/1e/f9/d44ad7471240740ce9f200bb3ad6e066fc74f0f217ef52df8aa0873196eb/sftpsyncer-0.1.10.tar.gz" } ], "0.1.11": [ { "comment_text": "", "digests": { "md5": "430111c757c23fcbdad71b2aa5b65d42", "sha256": "a78fa746de5b214425d58bc1704056d746240c335c037dba579c0f06fd3d2b31" }, "downloads": -1, "filename": "sftpsyncer-0.1.11.tar.gz", "has_sig": false, "md5_digest": "430111c757c23fcbdad71b2aa5b65d42", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11707, "upload_time": "2015-08-04T09:45:56", "url": "https://files.pythonhosted.org/packages/81/25/43a4e3b6672cd25227f0c3534ea80e5a5a09be9d20b91abe5d31fd3dcbb6/sftpsyncer-0.1.11.tar.gz" } ], "0.1.12": [ { "comment_text": "", "digests": { "md5": "0a167a93437f2f375e2cb04434746355", "sha256": "9ccc3ad0dfe02a4ff53664d65cefe8854dc4c963a99cea9259eb1a7c0d410c52" }, "downloads": -1, "filename": "sftpsyncer-0.1.12.tar.gz", "has_sig": false, "md5_digest": "0a167a93437f2f375e2cb04434746355", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11684, "upload_time": "2016-08-29T06:36:34", "url": "https://files.pythonhosted.org/packages/c4/a1/936d21a4077c40bb74b7fd35134b85b9bd9059d65240649468846653ee58/sftpsyncer-0.1.12.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "a8b3000388104ee9ce6db7ad664ed446", "sha256": "a3bc1f2e45af69c9a24925535d232c263e65f364d0dc67ff9740ee7a3ee710b9" }, "downloads": -1, "filename": "sftpsyncer-0.1.2.tar.gz", "has_sig": false, "md5_digest": "a8b3000388104ee9ce6db7ad664ed446", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10610, "upload_time": "2014-10-23T11:46:57", "url": "https://files.pythonhosted.org/packages/16/6b/0466f5935a59df5c54f8c70ff995e089b6ef104fcb478993c14da221e279/sftpsyncer-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "20e6380f7768e4800e1a37f15f953b4a", "sha256": "f39d7852d83b2a5d5eb774b639f0992a5ab18c43a1d966cbd916823b91c26739" }, "downloads": -1, "filename": "sftpsyncer-0.1.3.tar.gz", "has_sig": false, "md5_digest": "20e6380f7768e4800e1a37f15f953b4a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10681, "upload_time": "2014-10-24T05:45:56", "url": "https://files.pythonhosted.org/packages/af/62/8dfbd7ecf5579444529697cbc4edccbcbf062edd196a4adae55395c13e5f/sftpsyncer-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "fce5d700eefb886c1991692a4a08c52c", "sha256": "d472e0b18c13dda9d3000815e3eb56abee5b64b2511de8d2ed2344884d143f7a" }, "downloads": -1, "filename": "sftpsyncer-0.1.4.tar.gz", "has_sig": false, "md5_digest": "fce5d700eefb886c1991692a4a08c52c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10693, "upload_time": "2014-11-03T06:39:33", "url": "https://files.pythonhosted.org/packages/3e/2d/02246d8d7f19177966fdf15041c5316650c914535970ab5ff8bbd2d035b6/sftpsyncer-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "e08deacd348094cb948de1e2e7748c13", "sha256": "abd37a5d7bfd09246b5a3f2de4ba4ab2b216e1e093d0c19fe66c36abe9cc5d9b" }, "downloads": -1, "filename": "sftpsyncer-0.1.5.tar.gz", "has_sig": false, "md5_digest": "e08deacd348094cb948de1e2e7748c13", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10890, "upload_time": "2014-11-24T10:40:44", "url": "https://files.pythonhosted.org/packages/92/9d/030d4e749ad68656ea23671ed3f970b6b42885702292e98498a5992a1d9b/sftpsyncer-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "4d6cf502f4606bc96f9dfe3d53e5a073", "sha256": "cea958b2919ce63cbe10293bef9aa4237b43ac83246286667dc33c45f24e1d3c" }, "downloads": -1, "filename": "sftpsyncer-0.1.6.tar.gz", "has_sig": false, "md5_digest": "4d6cf502f4606bc96f9dfe3d53e5a073", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11100, "upload_time": "2014-12-15T10:51:39", "url": "https://files.pythonhosted.org/packages/25/94/0164a91ff780d848eb21594bf26c885fa047c35f0ddc8fc177d2c180462a/sftpsyncer-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "09d16a2072136f9c5cae2736566b1ec6", "sha256": "66c6a23b40cb00b3adb1cd708d8907fb271cdb1ffb876b2c981532ecce88d8ce" }, "downloads": -1, "filename": "sftpsyncer-0.1.7.tar.gz", "has_sig": false, "md5_digest": "09d16a2072136f9c5cae2736566b1ec6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11262, "upload_time": "2015-02-12T00:13:43", "url": "https://files.pythonhosted.org/packages/ec/56/aa4f2d819ca439143dd819314258b14c10d279ba0f5ae6f8f20fee7ec414/sftpsyncer-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "7faba54dc027c2f7a81ae22da59b8f01", "sha256": "4a49d17531bab909cf0424514ee62c1a8df586b2c035445d5a96b6f307212624" }, "downloads": -1, "filename": "sftpsyncer-0.1.8.tar.gz", "has_sig": false, "md5_digest": "7faba54dc027c2f7a81ae22da59b8f01", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11262, "upload_time": "2015-02-12T00:57:26", "url": "https://files.pythonhosted.org/packages/51/46/9317aae81415fcb0f6ec15496dc12d5ba661782f32b54c83d4e04d76c8aa/sftpsyncer-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "7b8e39a01188a900d4254fc4717cd1d0", "sha256": "9ca9f01655795d13a92f05205bf47d35ddfb5f1ec7379fb73749069aad222116" }, "downloads": -1, "filename": "sftpsyncer-0.1.9.tar.gz", "has_sig": false, "md5_digest": "7b8e39a01188a900d4254fc4717cd1d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10879, "upload_time": "2015-07-27T09:54:35", "url": "https://files.pythonhosted.org/packages/d7/48/29dc0d7a408386c74fab9893bfcaffe9d4947af666c3ccd5511cca5eaf46/sftpsyncer-0.1.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0a167a93437f2f375e2cb04434746355", "sha256": "9ccc3ad0dfe02a4ff53664d65cefe8854dc4c963a99cea9259eb1a7c0d410c52" }, "downloads": -1, "filename": "sftpsyncer-0.1.12.tar.gz", "has_sig": false, "md5_digest": "0a167a93437f2f375e2cb04434746355", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11684, "upload_time": "2016-08-29T06:36:34", "url": "https://files.pythonhosted.org/packages/c4/a1/936d21a4077c40bb74b7fd35134b85b9bd9059d65240649468846653ee58/sftpsyncer-0.1.12.tar.gz" } ] }