# `fs.smbfs` [![star me](https://img.shields.io/github/stars/althonos/fs.smbfs.svg?style=social&maxAge=3600&label=Star)](https://github.com/althonos/fs.smbfs/stargazers)
[![Source](https://img.shields.io/badge/source-GitHub-303030.svg?logo=git&maxAge=36000&style=flat-square)](https://github.com/althonos/fs.smbfs)
[![PyPI](https://img.shields.io/pypi/v/fs.smbfs.svg?logo=pypi&style=flat-square&maxAge=3600)](https://pypi.python.org/pypi/fs.smbfs)
[![Actions](https://img.shields.io/github/workflow/status/althonos/fs.smbfs/Test/master?logo=github&style=flat-square&maxAge=300)](https://github.com/althonos/fs.smbfs/actions)
[![Codecov](https://img.shields.io/codecov/c/github/althonos/fs.smbfs/master.svg?logo=codecov&style=flat-square&maxAge=300)](https://codecov.io/gh/althonos/fs.smbfs)
[![Codacy](https://img.shields.io/codacy/grade/82d40d17b4734692a9e70c5af5cc2a5b/master.svg?logo=codacy&style=flat-square&maxAge=300)](https://www.codacy.com/app/althonos/fs.smbfs/dashboard)
[![License](https://img.shields.io/pypi/l/fs.smbfs.svg?style=flat-square&maxAge=300)](https://choosealicense.com/licenses/mit/)
[![Versions](https://img.shields.io/pypi/pyversions/fs.smbfs.svg?logo=python&style=flat-square&maxAge=300)](https://pypi.org/project/fs.smbfs)
[![Format](https://img.shields.io/pypi/format/fs.smbfs.svg?style=flat-square&maxAge=300)](https://pypi.python.org/pypi/fs.smbfs)
[![GitHub issues](https://img.shields.io/github/issues/althonos/fs.smbfs.svg?style=flat-square&maxAge=600)](https://github.com/althonos/fs.smbfs/issues)
[![Downloads](https://img.shields.io/badge/dynamic/json?style=flat-square&color=303f9f&maxAge=86400&label=downloads&query=%24.total_downloads&url=https%3A%2F%2Fapi.pepy.tech%2Fapi%2Fprojects%2Ffs.smbfs)](https://pepy.tech/project/fs.smbfs)
[![Changelog](https://img.shields.io/badge/keep%20a-changelog-8A0707.svg?maxAge=2678400&style=flat-square)](https://github.com/althonos/fs.smbfs/blob/master/CHANGELOG.md)
## Requirements
| **PyFilesystem2** | [![PyPI fs](https://img.shields.io/pypi/v/fs.svg?maxAge=300&style=flat-square)](https://pypi.python.org/pypi/fs) | [![Source fs](https://img.shields.io/badge/source-GitHub-303030.svg?maxAge=36000&style=flat-square)](https://github.com/PyFilesystem/pyfilesystem2) | [![License fs](https://img.shields.io/pypi/l/fs.svg?maxAge=36000&style=flat-square)](https://choosealicense.com/licenses/mit/) |
|:-|:-|:-|:-|
| **six** | [![PyPI six](https://img.shields.io/pypi/v/six.svg?maxAge=300&style=flat-square)](https://pypi.python.org/pypi/six) | [![Source six]( https://img.shields.io/badge/source-GitHub-303030.svg?maxAge=36000&style=flat-square )]( https://github.com/benjaminp/six) | [![License six](https://img.shields.io/pypi/l/six.svg?maxAge=36000&style=flat-square)](https://choosealicense.com/licenses/mit/) |
| **PySMB** | [![PyPI pysmb](https://img.shields.io/pypi/v/pysmb.svg?maxAge=300&style=flat-square)](https://pypi.python.org/pypi/pysmb) | [![Source pysmb]( https://img.shields.io/badge/source-GitHub-303030.svg?maxAge=36000&style=flat-square )]( https://github.com/miketeo/pysmb) | [![License pysmb](https://img.shields.io/pypi/l/pysmb.svg?maxAge=36000&style=flat-square)](https://choosealicense.com/licenses/zlib/) |
## Installation
Install directly from PyPI, using [pip](https://pip.pypa.io/) :
```console
$ pip install fs.smbfs
```
## Usage
### Opener
Use `fs.open_fs` to open a filesystem with an SMB [FS
URL](https://pyfilesystem2.readthedocs.io/en/latest/openers.html):
```python
import fs
smb_fs = fs.open_fs('smb://username:password@SAMBAHOSTNAME:port/share')
```
The opener can use either an IPv4 address or a NetBIOS hostname, using the
[NetBIOS name service](https://en.wikipedia.org/wiki/NetBIOS#Name_service) to
find the other token. Otherwise, if NetBIOS is not available, a new SMB
connection can be established by using the IPv4 address and giving the
hostname with the `hostname` URL parameter.
The following parameters can be passed as URL parameters: `timeout`,
`name-port`, `direct-tcp`, `hostname`, and `domain`.
### Constructor
```python
import fs.smbfs
smb_fs = fs.smbfs.SMBFS(
host, username="guest", passwd="", timeout=15,
port=139, name_port=137, direct_tcp=False, domain=""
)
```
with each argument explained below:
- `host`: either the host name (*not* the [FQDN](https://en.wikipedia.org/wiki/Fully_qualified_domain_name))
of the SMB server, its IP address, or both in a tuple.
*If either the IP address or the host name is not given, NETBIOS is queried to get the missing data.*
- `user`: the username to connect with, defaults to `"guest"` for anonymous
connection.
- `passwd`: an optional password to connect with, defaults to `""` for
anonymous connection.
- `timeout`: the timeout, in seconds, for NetBIOS and TCP requests.
- `port`: the port the SMB server is listening on.
- `name_port`: the port the NetBIOS naming service is listening on.
- `direct_tcp`: set to *True* if the server is accessible directly
through TCP, leave as *False* for maximum compatibility.
- `domain`: the network domain to connect with, i.e. the workgroup on
Windows. Usually safe to leave as empty string, the default.
Once created, the `SMBFS` filesystem behaves like any other filesystem
(see the [Pyfilesystem2 documentation](https://pyfilesystem2.readthedocs.io)),
except if it was open in the root directory of the server, in which case the
root directory of the `SMBFS` instance will be read-only (since SMB clients
cannot create new shares).
## Feedback
Found a bug ? Have an enhancement request ? Head over to the [GitHub
issue tracker](https://github.com/althonos/fs.smbfs/issues) of the
project if you need to report or ask something. If you are filling in on
a bug, please include as much information as you can about the issue,
and try to recreate the same bug in a simple, easily reproducible
situation.
## Credits
`fs.smbfs` is developed and maintained by:
- [Martin Larralde](https://github.com/althonos)
The following people contributed to `fs.sshfs`:
- [Mike DePalatis](https://github.com/mivade)
- [Isaac Jackson](https://github.com/Vegemash)
- [Max Klein](https://github.com/telamonian)
- [Francesco Frassinelli](https://github.com/frafra)
- [Josiah Witheford](https://github.com/josiahwitheford)
This project obviously owes a lot to the PyFilesystem2 project and
[all its contributors](https://github.com/PyFilesystem/pyfilesystem2/blob/master/CONTRIBUTORS.md).
## See also
- [fs](https://github.com/Pyfilesystem/pyfilesystem2), the core
Pyfilesystem2 library
- [fs.archive](https://github.com/althonos/fs.archive), enhanced
archive filesystems for Pyfilesystem2
- [fs.sshfs](https://github.com/althonos/fs.sshfs), Pyfilesystem2 over
SSH using paramiko
Raw data
{
"_id": null,
"home_page": "https://github.com/althonos/fs.smbfs",
"name": "fs.smbfs",
"maintainer": "",
"docs_url": null,
"requires_python": "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7",
"maintainer_email": "",
"keywords": "filesystem,Pyfilesystem2,smb,cifs,samba",
"author": "Martin Larralde",
"author_email": "martin.larralde@embl.de",
"download_url": "https://files.pythonhosted.org/packages/f2/f1/326d0e2ef547484943bea24df2acea0f33a9a683e39a9f52e48e5333cf3f/fs.smbfs-1.0.6.tar.gz",
"platform": "any",
"description": "# `fs.smbfs` [![star me](https://img.shields.io/github/stars/althonos/fs.smbfs.svg?style=social&maxAge=3600&label=Star)](https://github.com/althonos/fs.smbfs/stargazers)\n\n[![Source](https://img.shields.io/badge/source-GitHub-303030.svg?logo=git&maxAge=36000&style=flat-square)](https://github.com/althonos/fs.smbfs)\n[![PyPI](https://img.shields.io/pypi/v/fs.smbfs.svg?logo=pypi&style=flat-square&maxAge=3600)](https://pypi.python.org/pypi/fs.smbfs)\n[![Actions](https://img.shields.io/github/workflow/status/althonos/fs.smbfs/Test/master?logo=github&style=flat-square&maxAge=300)](https://github.com/althonos/fs.smbfs/actions)\n[![Codecov](https://img.shields.io/codecov/c/github/althonos/fs.smbfs/master.svg?logo=codecov&style=flat-square&maxAge=300)](https://codecov.io/gh/althonos/fs.smbfs)\n[![Codacy](https://img.shields.io/codacy/grade/82d40d17b4734692a9e70c5af5cc2a5b/master.svg?logo=codacy&style=flat-square&maxAge=300)](https://www.codacy.com/app/althonos/fs.smbfs/dashboard)\n[![License](https://img.shields.io/pypi/l/fs.smbfs.svg?style=flat-square&maxAge=300)](https://choosealicense.com/licenses/mit/)\n[![Versions](https://img.shields.io/pypi/pyversions/fs.smbfs.svg?logo=python&style=flat-square&maxAge=300)](https://pypi.org/project/fs.smbfs)\n[![Format](https://img.shields.io/pypi/format/fs.smbfs.svg?style=flat-square&maxAge=300)](https://pypi.python.org/pypi/fs.smbfs)\n[![GitHub issues](https://img.shields.io/github/issues/althonos/fs.smbfs.svg?style=flat-square&maxAge=600)](https://github.com/althonos/fs.smbfs/issues)\n[![Downloads](https://img.shields.io/badge/dynamic/json?style=flat-square&color=303f9f&maxAge=86400&label=downloads&query=%24.total_downloads&url=https%3A%2F%2Fapi.pepy.tech%2Fapi%2Fprojects%2Ffs.smbfs)](https://pepy.tech/project/fs.smbfs)\n[![Changelog](https://img.shields.io/badge/keep%20a-changelog-8A0707.svg?maxAge=2678400&style=flat-square)](https://github.com/althonos/fs.smbfs/blob/master/CHANGELOG.md)\n\n\n## Requirements\n\n| **PyFilesystem2** | [![PyPI fs](https://img.shields.io/pypi/v/fs.svg?maxAge=300&style=flat-square)](https://pypi.python.org/pypi/fs) | [![Source fs](https://img.shields.io/badge/source-GitHub-303030.svg?maxAge=36000&style=flat-square)](https://github.com/PyFilesystem/pyfilesystem2) | [![License fs](https://img.shields.io/pypi/l/fs.svg?maxAge=36000&style=flat-square)](https://choosealicense.com/licenses/mit/) |\n|:-|:-|:-|:-|\n| **six** | [![PyPI six](https://img.shields.io/pypi/v/six.svg?maxAge=300&style=flat-square)](https://pypi.python.org/pypi/six) | [![Source six]( https://img.shields.io/badge/source-GitHub-303030.svg?maxAge=36000&style=flat-square )]( https://github.com/benjaminp/six) | [![License six](https://img.shields.io/pypi/l/six.svg?maxAge=36000&style=flat-square)](https://choosealicense.com/licenses/mit/) |\n| **PySMB** | [![PyPI pysmb](https://img.shields.io/pypi/v/pysmb.svg?maxAge=300&style=flat-square)](https://pypi.python.org/pypi/pysmb) | [![Source pysmb]( https://img.shields.io/badge/source-GitHub-303030.svg?maxAge=36000&style=flat-square )]( https://github.com/miketeo/pysmb) | [![License pysmb](https://img.shields.io/pypi/l/pysmb.svg?maxAge=36000&style=flat-square)](https://choosealicense.com/licenses/zlib/) |\n\n## Installation\n\nInstall directly from PyPI, using [pip](https://pip.pypa.io/) :\n\n```console\n$ pip install fs.smbfs\n```\n\n## Usage\n\n### Opener\n\nUse `fs.open_fs` to open a filesystem with an SMB [FS\nURL](https://pyfilesystem2.readthedocs.io/en/latest/openers.html):\n\n```python\nimport fs\nsmb_fs = fs.open_fs('smb://username:password@SAMBAHOSTNAME:port/share')\n```\n\nThe opener can use either an IPv4 address or a NetBIOS hostname, using the\n[NetBIOS name service](https://en.wikipedia.org/wiki/NetBIOS#Name_service) to\nfind the other token. Otherwise, if NetBIOS is not available, a new SMB\nconnection can be established by using the IPv4 address and giving the\nhostname with the `hostname` URL parameter.\n\nThe following parameters can be passed as URL parameters: `timeout`,\n`name-port`, `direct-tcp`, `hostname`, and `domain`.\n\n\n### Constructor\n\n```python\nimport fs.smbfs\nsmb_fs = fs.smbfs.SMBFS(\n host, username=\"guest\", passwd=\"\", timeout=15,\n port=139, name_port=137, direct_tcp=False, domain=\"\"\n)\n```\n\nwith each argument explained below:\n\n- `host`: either the host name (*not* the [FQDN](https://en.wikipedia.org/wiki/Fully_qualified_domain_name))\n of the SMB server, its IP address, or both in a tuple.\n *If either the IP address or the host name is not given, NETBIOS is queried to get the missing data.*\n- `user`: the username to connect with, defaults to `\"guest\"` for anonymous\n connection.\n- `passwd`: an optional password to connect with, defaults to `\"\"` for\n anonymous connection.\n- `timeout`: the timeout, in seconds, for NetBIOS and TCP requests.\n- `port`: the port the SMB server is listening on.\n- `name_port`: the port the NetBIOS naming service is listening on.\n- `direct_tcp`: set to *True* if the server is accessible directly\n through TCP, leave as *False* for maximum compatibility.\n- `domain`: the network domain to connect with, i.e. the workgroup on\n Windows. Usually safe to leave as empty string, the default.\n\nOnce created, the `SMBFS` filesystem behaves like any other filesystem\n(see the [Pyfilesystem2 documentation](https://pyfilesystem2.readthedocs.io)),\nexcept if it was open in the root directory of the server, in which case the\nroot directory of the `SMBFS` instance will be read-only (since SMB clients\ncannot create new shares).\n\n## Feedback\n\nFound a bug ? Have an enhancement request ? Head over to the [GitHub\nissue tracker](https://github.com/althonos/fs.smbfs/issues) of the\nproject if you need to report or ask something. If you are filling in on\na bug, please include as much information as you can about the issue,\nand try to recreate the same bug in a simple, easily reproducible\nsituation.\n\n\n## Credits\n\n`fs.smbfs` is developed and maintained by:\n- [Martin Larralde](https://github.com/althonos)\n\nThe following people contributed to `fs.sshfs`:\n- [Mike DePalatis](https://github.com/mivade)\n- [Isaac Jackson](https://github.com/Vegemash)\n- [Max Klein](https://github.com/telamonian)\n- [Francesco Frassinelli](https://github.com/frafra)\n- [Josiah Witheford](https://github.com/josiahwitheford)\n\nThis project obviously owes a lot to the PyFilesystem2 project and\n[all its contributors](https://github.com/PyFilesystem/pyfilesystem2/blob/master/CONTRIBUTORS.md).\n\n\n## See also\n\n- [fs](https://github.com/Pyfilesystem/pyfilesystem2), the core\n Pyfilesystem2 library\n- [fs.archive](https://github.com/althonos/fs.archive), enhanced\n archive filesystems for Pyfilesystem2\n- [fs.sshfs](https://github.com/althonos/fs.sshfs), Pyfilesystem2 over\n SSH using paramiko\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Pyfilesystem2 over SMB using pysmb",
"version": "1.0.6",
"split_keywords": [
"filesystem",
"pyfilesystem2",
"smb",
"cifs",
"samba"
],
"urls": [
{
"comment_text": "",
"digests": {
"md5": "6ac7aa5753af132124bdfb2029d25306",
"sha256": "30ae89ce69ac539c9b6c5fc601f922e6e538658c95ed3bb3922da206b7652006"
},
"downloads": -1,
"filename": "fs.smbfs-1.0.6-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "6ac7aa5753af132124bdfb2029d25306",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7",
"size": 15365,
"upload_time": "2022-11-02T12:02:29",
"upload_time_iso_8601": "2022-11-02T12:02:29.678799Z",
"url": "https://files.pythonhosted.org/packages/37/bc/73d692fad16397ccebf1a1e45edc16bab0a4b34c711c910c9c1b63510d2e/fs.smbfs-1.0.6-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "3bb5c3355b1b8f1390b203cc719a6f1d",
"sha256": "ddeeabd8a8ed25c4dbc85d19950088c69237900fb3ad251879527d628ee6f2f6"
},
"downloads": -1,
"filename": "fs.smbfs-1.0.6.tar.gz",
"has_sig": false,
"md5_digest": "3bb5c3355b1b8f1390b203cc719a6f1d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7",
"size": 18872,
"upload_time": "2022-11-02T12:02:30",
"upload_time_iso_8601": "2022-11-02T12:02:30.853825Z",
"url": "https://files.pythonhosted.org/packages/f2/f1/326d0e2ef547484943bea24df2acea0f33a9a683e39a9f52e48e5333cf3f/fs.smbfs-1.0.6.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2022-11-02 12:02:30",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "althonos",
"github_project": "fs.smbfs",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "fs.smbfs"
}