使用pysmb通过SMB的Pyfilesystem2
项目描述
miarec_smbfs
PyFilesystem2的SMB文件系统
这是fs.smbfs的一个分支
代码由MiaRec团队修改以满足我们的需求。
miarec_s3fs与fs-s3fs之间的显著差异
-
需要Python 3.7+。移除了对旧版本Python的支持。
-
打开协议前缀是
msmb://
(而不是原始的smb://
)
要求
PyFilesystem2 | |||
---|---|---|---|
six | |||
PySMB |
miarec_smbfs
支持Python版本3.7+
安装
直接从PyPI安装,使用pip
$ pip install miarec_smbfs
用法
打开器
使用fs.open_fs
通过SMB FS URL打开文件系统
import fs
smb_fs = fs.open_fs('msmb://username:password@SAMBAHOSTNAME:port/share')
打开器可以使用IPv4地址或NetBIOS主机名,通过NetBIOS名称服务来查找其他令牌。如果没有NetBIOS可用,可以通过IPv4地址和带有hostname
URL参数的主机名建立新的SMB连接。
以下参数可以作为URL参数传递:timeout
、name-port
、direct-tcp
、hostname
和domain
。
构造函数
import miarec_smbfs
smb_fs = miarec_smbfs.SMBFS(
host, username="guest", passwd="", timeout=15,
port=139, name_port=137, direct_tcp=False, domain=""
)
以下是对每个参数的解释
host
:SMB服务器的主机名(不是完全合格域名FQDN)、IP地址或两者的元组。如果未提供IP地址或主机名,将查询NETBIOS以获取缺失的数据。user
:要连接的用户名,默认为"guest"
进行匿名连接。passwd
:可选的密码以进行连接,默认为""
进行匿名连接。timeout
:NetBIOS和TCP请求的超时时间,单位为秒。port
:SMB服务器监听的端口。name_port
:NetBIOS命名服务监听的端口。direct_tcp
:如果服务器可以通过TCP直接访问,则设置为True,为了最大兼容性,请保持为False。domain
:要连接的网络域,即Windows上的工作组。通常可以保持为空字符串,这是默认值。
创建后,SMBFS
文件系统的行为类似于其他任何文件系统(请参阅Pyfilesystem2文档),除非它在服务器的根目录中打开,在这种情况下,SMBFS
实例的根目录将是只读的(因为SMB客户端无法创建新的共享)。
测试
在GitHub Actions上运行自动单元测试
要本地运行测试,请执行以下操作。
在本地机器上安装Docker。
创建并激活Python虚拟环境
python -m vevn venv
source venv\bin\activate
安装项目和测试依赖项
pip install -e ".[test]"
运行测试
pytest
致谢
miarec_smbfs
由MiaRec开发和维护
原始代码(fs.smbfs
)由
项目详情
下载文件
下载适合您平台的自定义文件。如果您不确定要选择哪一个,请了解有关安装包的更多信息。
源分布
miarec_smbfs-2024.1.1.tar.gz (18.8 kB 查看散列值)
构建分布
关闭
miarec_smbfs-2024.1.1.tar.gz的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 272fa4e817c4abf670d19f1af27037f5bb590c1e2b484ea78784b2076b7440b4 |
|
MD5 | c2a2a0d25348047123f234c8d962e069 |
|
BLAKE2b-256 | f5155b70bedc504e4090b2798c229a59614b5c69b299def4ed0c80d771f78da1 |