https://github.com/althonos/fs.smbfs
Pyfilesystem2 over SMB using pysmb
https://github.com/althonos/fs.smbfs
cifs filesystem pyfilesystem2 pysmb smb
Last synced: 6 months ago
JSON representation
Pyfilesystem2 over SMB using pysmb
- Host: GitHub
- URL: https://github.com/althonos/fs.smbfs
- Owner: althonos
- License: mit
- Created: 2017-08-14T19:06:16.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2024-01-11T23:21:56.000Z (over 1 year ago)
- Last Synced: 2024-12-27T15:35:27.697Z (7 months ago)
- Topics: cifs, filesystem, pyfilesystem2, pysmb, smb
- Language: Python
- Homepage:
- Size: 143 KB
- Stars: 29
- Watchers: 4
- Forks: 15
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: COPYING
Awesome Lists containing this project
README
# `fs.smbfs` [](https://github.com/althonos/fs.smbfs/stargazers)
[](https://github.com/althonos/fs.smbfs)
[](https://pypi.python.org/pypi/fs.smbfs)
[](https://github.com/althonos/fs.smbfs/actions)
[](https://codecov.io/gh/althonos/fs.smbfs)
[](https://www.codacy.com/app/althonos/fs.smbfs/dashboard)
[](https://choosealicense.com/licenses/mit/)
[](https://pypi.org/project/fs.smbfs)
[](https://pypi.python.org/pypi/fs.smbfs)
[](https://github.com/althonos/fs.smbfs/issues)
[](https://pepy.tech/project/fs.smbfs)
[](https://github.com/althonos/fs.smbfs/blob/master/CHANGELOG.md)## Requirements
| **PyFilesystem2** | [](https://pypi.python.org/pypi/fs) | [](https://github.com/PyFilesystem/pyfilesystem2) | [](https://choosealicense.com/licenses/mit/) |
|:-|:-|:-|:-|
| **six** | [](https://pypi.python.org/pypi/six) | []( https://github.com/benjaminp/six) | [](https://choosealicense.com/licenses/mit/) |
| **PySMB** | [](https://pypi.python.org/pypi/pysmb) | []( https://github.com/miketeo/pysmb) | [](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