(远程)索引档案的 Git-annex 特殊远程实现
项目描述
用于访问(远程)索引文件存档(RIA)的 Git-annex 专用远程
这个git-annex 特殊远程directory实现与git-annex 内置的特殊远程类型非常相似。有一些关键差异概述了人们可能会考虑使用这个的用例:
-
(可选)对(压缩)7z 档案的读取访问权限
(部分)存储在遥控器中的密钥可以保存在 7z存档中。这些档案被索引并支持相对快速的随机读取访问。此功能对 HPC 存储系统很有帮助,因为文件系统 inode 上的强配额可能会强加给用户。远程的整个密钥存储可以放入存档中,重新使用完全相同的目录结构,并且在仅使用少数 inode 时保持完全可访问,而与文件数量和大小无关。
-
(基于 SSH 的远程)访问可配置目录
可以提供 SSH 主机名,并且与远程的所有交互都将通过 SSH 执行。从本地操作转移到远程操作,或切换目标路径可以通过更改配置来完成(甚至根本不需要接触存储库)。这使得适应基础架构更改变得更加容易,尤其是在处理大量存储库时。
-
多仓库目录结构
虽然每个存储库都有自己关联的密钥存储目录树,但多个存储库的密钥存储目录可以组织成同质的存档目录结构。对于DataLad数据集,它们的 ID 用于定义存档中密钥存储的位置。对于任何其他存储库,使用附件远程 UUID。此功能进一步有助于处理备份或数据存储用例中的大量存储库,因为位置是从存储库属性派生的,而不必显式地重新配置它们。
安装
在安装此软件包之前,请确保您安装了最新版本的 git-annex。这个特殊的遥控器至少需要 git-annex 版本 6.20160511。之后,ria-remote从
PyPi安装最新版本:
# install from PyPi
pip install ria-remote
利用
通过 git-annex命令ria设置一个特殊的遥控器,就像任何其他“外部”类型的遥控器一样。initremote与标准设置相比,还有一个额外的必需设置:base-path它确定了特殊遥控器放置其键的基本目录:
git annex initremote myremote \
type=external encryption=none \
externaltype=ria base-path=/tmp/basepath/here
或者,base-path也可以通过设置annex.ria-remote.<remote>.base-path(在本例中
annex.ria-remote.myremote.base-path)通过 Git 配置变量提供。
遥控器现在可以使用了。任何目录都将按需创建。存储库的密钥存储将位于给定的基本路径下方,结构如下:
/tmp/basepath/here
└── 2e5
└── 24934-a09e-11e9-8503-f0d5bf7b5561
└── annex
└── objects
└── ff4
└── c57
└── MD5E-s4--ba1f2511fc30423bdbb183fe33f3dd0f
└── MD5E-s4--ba1f2511fc30423bdbb183fe33f3dd0f
其中前两个级别表示一个树结构,可以为任意数量的存储库托管密钥存储,其余级别与裸 Git 存储库的组织相同,附件对象树遵循directory-type git-annex 特殊布局偏僻的。两个最顶层的目录名称是根据特殊遥控器的 git-annex UUID 或 DataLad 数据集 UUID(如果可用)构建的。
专用遥控器还支持基于 SSH 的操作。要启用它,必须提供一个额外的主机名参数:
git annex initremote myremote \
type=external encryption=none \
externaltype=ria base-path=/tmp/basepath/here \
ssh-host=ria.example.com
此配置将使特殊远程/tmp/basepath/here使用
ria.example.com. 任何 SSH 访问自定义(用户名、端口等)都必须通过标准 SSH 配置机制来实现,例如,通过在以下位置放置这样的代码段$HOME/.ssh/config:
Host ria.example.com
User mike
Port 2222
PreferredAuthentications publickey
还有其他可用的配置设置:
-
默认情况下,ria-remote 将通过读取
ria-layout-version顶层 (base-path) 以及各个数据集目录中的文件来检查远程端的布局版本。如果布局版本未知,它会将其模式设置为“只读”,并拒绝向该存储写入任何内容,以免意外混淆不同的布局。此行为可以通过设置为 来annex.ria-remote.<name>.force-write覆盖true。 -
远端可以指示将任何发生的异常写入日志文件。这有助于调试多用户中央存储场景中的问题。要使用此功能,
ria-layout-version文件中记录的版本可以附加|l('l' for logging)。如果在数据集树的顶部完成,这将应用于所有数据集。但是,由于这样的日志可能会泄漏私人信息,因此任何客户端都可以通过设置忽略此配置annex.ria-remote.<name>.ignore-remote-config。没有独立的服务器端处理,所有动作都由客户端特殊远程实例执行。
支持
此软件的所有错误、问题和增强请求都可以在这里提交: https ://github.com/datalad/git-annex-ria-remote/issues
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
内置分布
ria_remote -0.7.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 46d1df52867f06c9121487443b55a2423bc96787d1c44be6b77448624677ff38 |
|
| MD5 | bb590aad8b7d5ac6ba0b282111cde84c |
|
| 布莱克2-256 | 6c79cc00d04126c8f8e9d42e2bb1c23d37ab3f79f57ecae8bcb96a21f2b1e327 |
ria_remote -0.7-py2.py3-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 01fb0eb12065a66253b144e70fb532388a79ced5e59e653e3be0af4193c7dc05 |
|
| MD5 | 33511f1f4bfd24c3e179edeccd1f50e1 |
|
| 布莱克2-256 | e5f4d43c2819265d185880542673b27159e3774509b070eb9316ded4c91d0092 |