{ "info": { "author": "Michael Hanke", "author_email": "michael.hanke@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: BSD License", "Programming Language :: Python", "Programming Language :: Python :: 3" ], "description": "# Git-annex special remote for accessing (Remote) Indexed file Archives (RIA)\n\n[![Travis tests status](https://secure.travis-ci.org/datalad/git-annex-ria-remote.png?branch=master)](https://travis-ci.org/datalad/git-annex-ria-remote) [![GitHub release](https://img.shields.io/github/release/datalad/git-annex-ria-remote.svg)](https://GitHub.com/datalad/git-annex-ria-remote/releases/) [![PyPI version fury.io](https://badge.fury.io/py/ria-remote.svg)](https://pypi.python.org/pypi/ria-remote/)\n\nThis [git-annex](http://git-annex.branchable.com) [special\nremote](http://git-annex.branchable.com/special_remotes) implementation is very\nsimilar to the `directory` special remote type built into git-annex. There are\na few key differences that outline the use cases where one might consider using\nthis one instead:\n\n- (Optional) read-access to (compressed) 7z archives\n\n (Parts of) the keys stored in the remote can live in a\n [7z](https://www.7-zip.org) archive. These archives are indexed and support\n relatively fast random read access. This feature can be instrumental on\n HPC storage systems where strong quotas on filesystem inodes might be imposed\n on users. The entire key store of the remote can be put into an archive, re-using\n the exact same directory structure, and remains fully accessible while only\n using a handful of inodes, regardless of file number and size.\n\n- (SSH-based remote) access to a configurable directory\n\n An SSH host name can be provided and all interaction with the remote will be\n performed via SSH. Moving from local to remote operations, or switching target\n paths can be done via a change to the configuration (even without having to touch\n a repository at all). This makes it easier to accommodate infrastructural changes,\n especially when dealing with large numbers of repositories.\n\n- Multi-repository directory structure\n\n While each repository has its own associated key store directory tree, the\n key store directories of multiple repositories can be organized into a homogeneous\n archive directory structure. For [DataLad](http://datalad.org) datasets, their\n ID is used to define the location of a key store in an archive. For any other\n repository the annex remote UUID is taken. This feature further aids the handling\n of large numbers of repositories in a backup or data store use case, because\n locations are derived from repository properties rather than having to re-configure\n them explicitly.\n\n\n## Installation\n\nBefore you install this package, please make sure that you [install a recent\nversion of git-annex](https://git-annex.branchable.com/install). This special\nremote requires at minimum git-annex version 6.20160511. Afterwards,\ninstall the latest version of `ria-remote` from\n[PyPi](https://pypi.org/project/ria-remote):\n\n # install from PyPi\n pip install ria-remote\n\n\n## Use\n\nA `ria` special remote is set up like any other \"external\"-type remote via the\ngit-annex `initremote` command. There is a single additional required setting\nin contrast to the standard ones: `base-path` which determines the base\ndirectory where the special remote places its keys:\n\n git annex initremote myremote \\\n type=external encryption=none \\\n externaltype=ria base-path=/tmp/basepath/here\n\nAlternatively, the `base-path` can also be provided via a Git configuration\nvariable by setting `annex.ria-remote..base-path` (in this example\n`annex.ria-remote.myremote.base-path`).\n\nThe remote is now ready for use. Any directories will be created on demand.\nThe key store for a repository will be located underneath the given base path,\nin a structure like this:\n\n /tmp/basepath/here\n \u2514\u2500\u2500 2e5\n \u2514\u2500\u2500 24934-a09e-11e9-8503-f0d5bf7b5561\n \u2514\u2500\u2500 annex\n \u2514\u2500\u2500 objects\n \u2514\u2500\u2500 ff4\n \u2514\u2500\u2500 c57\n \u2514\u2500\u2500 MD5E-s4--ba1f2511fc30423bdbb183fe33f3dd0f\n \u2514\u2500\u2500 MD5E-s4--ba1f2511fc30423bdbb183fe33f3dd0f\n\nwhere the first two levels represent a tree structure that can host key stores\nfor any number of repositories, and the remaining level are identical to\nthe organization of a bare Git repository with the annex object tree following\nthe layout of a `directory`-type git-annex special remote.\nThe directory names for the two top-most levels are build from the git-annex\nUUID for the special remote, or a DataLad dataset UUID, if available.\n\nThe special remote also supports SSH-based operation. To enable it, an\nadditional host name argument has to be given:\n\n git annex initremote myremote \\\n type=external encryption=none \\\n externaltype=ria base-path=/tmp/basepath/here \\\n ssh-host=ria.example.com\n\nThis configuration will make the special remote use `/tmp/basepath/here` on\n`ria.example.com`. Any SSH-access customizations (user name, ports, etc.) have\nto be implemented via the standard SSH configuration mechanism, for example, by\nplacing a snippet like this in `$HOME/.ssh/config`:\n\n Host ria.example.com\n User mike\n Port 2222\n PreferredAuthentications publickey\n\n\n## Support\n\nAll bugs, concerns and enhancement requests for this software can be submitted here:\nhttps://github.com/datalad/git-annex-ria-remote/issues\n\n\n", "description_content_type": "text/markdown; charset=UTF-8", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/datalad/git-annex-ria-remote", "keywords": "", "license": "MIT", "maintainer": "Michael Hanke", "maintainer_email": "michael.hanke@gmail.com", "name": "ria-remote", "package_url": "https://pypi.org/project/ria-remote/", "platform": "", "project_url": "https://pypi.org/project/ria-remote/", "project_urls": { "Homepage": "https://github.com/datalad/git-annex-ria-remote" }, "release_url": "https://pypi.org/project/ria-remote/0.4/", "requires_dist": [ "datalad (>=0.12.0rc4)", "annexremote", "future" ], "requires_python": ">= 3.5", "summary": "Git-annex special remote implementation for (remote) indexed archives", "version": "0.4" }, "last_serial": 5704914, "releases": { "0.3": [ { "comment_text": "", "digests": { "md5": "937ee4f5c850f8e824e7a7ce17de9be1", "sha256": "08646bf12928c939feb7c2b37fcec162892a76e58fe5eeb84fcf3a9f5c0ef2ae" }, "downloads": -1, "filename": "ria_remote-0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "937ee4f5c850f8e824e7a7ce17de9be1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10757, "upload_time": "2019-07-09T10:56:09", "url": "https://files.pythonhosted.org/packages/06/f9/220f9bc766a1926ace20490c1c6d3216767beb8daac12fc62e828ccb73a4/ria_remote-0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d99a8812f92fb0763feae8cc562d922f", "sha256": "abf115178b306f9cd7c0ac3bf7701102d8a10ddc33cd83129e7c30f91a251eb0" }, "downloads": -1, "filename": "ria_remote-0.3.tar.gz", "has_sig": false, "md5_digest": "d99a8812f92fb0763feae8cc562d922f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13129, "upload_time": "2019-07-09T10:56:11", "url": "https://files.pythonhosted.org/packages/ee/fd/b57015785852d4dab08168e5286199b9a806dacbf2236e968b5b80835fc0/ria_remote-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "3099a507cd068d88c151cb7925cc0123", "sha256": "0c1562644ac367a892efab502122a9053b4acd2c4b6258ad7e462db41134912f" }, "downloads": -1, "filename": "ria_remote-0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3099a507cd068d88c151cb7925cc0123", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">= 3.5", "size": 19575, "upload_time": "2019-08-20T18:25:10", "url": "https://files.pythonhosted.org/packages/26/9d/21210b9e7b0f4c27bb99558302ef4013fab05ea0c6d842cbdc06289bc875/ria_remote-0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "38904aabb1a6c7baacc584a5cf6d87ec", "sha256": "df30ca1b2b2d1ce9faa83e235215a05cbc978563a54c3d169eec667e52aa68cb" }, "downloads": -1, "filename": "ria_remote-0.4.tar.gz", "has_sig": false, "md5_digest": "38904aabb1a6c7baacc584a5cf6d87ec", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.5", "size": 33602, "upload_time": "2019-08-20T18:25:12", "url": "https://files.pythonhosted.org/packages/c0/d2/0bca147dd6ca3780b2afb51c6251242798418e5f275d9894955e3d6d6bf9/ria_remote-0.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3099a507cd068d88c151cb7925cc0123", "sha256": "0c1562644ac367a892efab502122a9053b4acd2c4b6258ad7e462db41134912f" }, "downloads": -1, "filename": "ria_remote-0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3099a507cd068d88c151cb7925cc0123", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">= 3.5", "size": 19575, "upload_time": "2019-08-20T18:25:10", "url": "https://files.pythonhosted.org/packages/26/9d/21210b9e7b0f4c27bb99558302ef4013fab05ea0c6d842cbdc06289bc875/ria_remote-0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "38904aabb1a6c7baacc584a5cf6d87ec", "sha256": "df30ca1b2b2d1ce9faa83e235215a05cbc978563a54c3d169eec667e52aa68cb" }, "downloads": -1, "filename": "ria_remote-0.4.tar.gz", "has_sig": false, "md5_digest": "38904aabb1a6c7baacc584a5cf6d87ec", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.5", "size": 33602, "upload_time": "2019-08-20T18:25:12", "url": "https://files.pythonhosted.org/packages/c0/d2/0bca147dd6ca3780b2afb51c6251242798418e5f275d9894955e3d6d6bf9/ria_remote-0.4.tar.gz" } ] }