跳转到主要内容

使用pysmb通过SMB的Pyfilesystem2

项目描述

miarec_smbfs PyFilesystem2的SMB文件系统

Actions License

这是fs.smbfs的一个分支

代码由MiaRec团队修改以满足我们的需求。

miarec_s3fs与fs-s3fs之间的显著差异

  1. 需要Python 3.7+。移除了对旧版本Python的支持。

  2. 打开协议前缀是msmb://(而不是原始的smb://

要求

PyFilesystem2 PyPI fs Source fs License fs
six PyPI six Source six License six
PySMB PyPI pysmb Source pysmb License 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参数传递:timeoutname-portdirect-tcphostnamedomain

构造函数

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_smbfsMiaRec开发和维护

原始代码(fs.smbfs)由

项目详情


下载文件

下载适合您平台的自定义文件。如果您不确定要选择哪一个,请了解有关安装包的更多信息。

源分布

miarec_smbfs-2024.1.1.tar.gz (18.8 kB 查看散列值)

上传时间:

构建分布

miarec_smbfs-2024.1.1-py2.py3-none-any.whl (15.2 kB 查看散列值)

上传时间: Python 2 Python 3

由以下机构支持