SSH

Odo 使用 paramiko 库通过 ssh 与远程数据进行交互。

URI

SSH URI 由 ssh:// 协议、主机名和文件名组成。简单和复杂的示例如下:

ssh://hostname:myfile.csv
ssh://username@hostname:/path/to/myfile.csv

此外,您可能希望像以下示例一样,通过关键字参数将身份验证信息传递给 odo 函数

>>> from odo import odo
>>> odo('localfile.csv', 'ssh://hostname:myfile.csv',
...     username='user', key_filename='.ssh/id_rsa', port=22)

我们将身份验证关键字参数传递给 paramiko.SSHClient.connect 方法。该方法接受以下选项:

port=22
username=None
password=None
pkey=None
key_filename=None
timeout=None
allow_agent=True
look_for_keys=True
compress=False
sock=None

显式构建 SSH 对象

大多数用户通常使用 URI 字符串与 odo 进行交互。

或者,您也可以以编程方式构建对象。SSH 使用 SSH 类型修饰符。

>>> from odo import SSH, CSV, JSON
>>> auth = {'user': 'ubuntu',
...         'host': 'hostname',
...         'key_filename': '.ssh/id_rsa'}
>>> data = SSH(CSV)('data/accounts.csv', **auth)
>>> data = SSH(JSONLines)('accounts.json', **auth)

转换

我们能够将任何文本类型(CSV, JSON, JSONLines, TextFile)转换为其在远程服务器上的等效类型(SSH(CSV), SSH(JSON), ...)。

SSH(*) <-> *

该网络还允许从其他类型进行转换,例如将 pandas DataFrame 路由通过一个临时本地 CSV 文件,转换为远程 CSV 文件。

Foo <-> Temp(*) <-> SSH(*)