Skip to main content

miarec_ftpfs

Actions

MiaRec FTPFS is a PyFilesystem interface to FTP/FTPS storage.

This a fork of the builtin FTPFS class from PyFileSystem2 project, written by Will McGugan (email willmcgugan@gmail.com).

The code was modified by MiaRec team to fullfill our needs.

Notable differences between miarec_ftpfs.FTPFS and fs.FTPFS

  1. Requires Python 3.6+. A support of Python 2.7 is removed.

  2. Opener protocol prefixes are mftp:// and mftps:// for FTP and FTP-over-TLS respectively (instead of the original ftp:// and ftps://)

  3. Add Implicit TLS support

  4. Fix bugs in Explicit TLS implementation

  5. Automatically try to re-open FTP connection on the next operation in case of network issues. Previously, the FTPFS object was stuck in error state, and any operations on the file system instance, like openbin(), listdir(), etc, were failing infinitely.

  6. Better error handling. All FTP protocol-specific and SSL errors are converted into corresponding FSError exception

Installing

You can install FTPFS from pip as follows:

pip install miarec_ftpfs

This will install the most recent stable version.

Alternatively, if you want the cutting edge code, you can check out the GitHub repos at https://github.com/miarec/miarec_ftpfs

Opening a FTPFS

Open an FTPFS by explicitly using the constructor:

from fs.ftpfs import FTPFS
FTPFS("demo.wftpserver.com")

Or via an FS URL:

ftp_fs = fs.open_fs('mftp://test.rebex.net')

Or via an FS URL, using TLS:

ftp_fs = fs.open_fs('mftps://demo.wftpserver.com')

You can also use a non-anonymous username, and optionally a password, even within a FS URL:

ftp_fs = FTPFS("test.rebex.net", user="demo", passwd="password")
ftp_fs = fs.open_fs('mftp://demo:password@test.rebex.net')

Connecting via a proxy is supported. If using a FS URL, the proxy URL will need to be added as a URL parameter:

ftp_fs = FTPFS("ftp.ebi.ac.uk", proxy="test.rebex.net")
ftp_fs = fs.open_fs('mftp://ftp.ebi.ac.uk/?proxy=test.rebex.net')

Testing

Automated unit tests are run on GitHub Actions

To run the tests locally, do the following.

Create activate python virtual environment:

python -m vevn venv
source venv\bin\activate

Install the project and test dependencies:

pip install -e ".[test]"

Run tests:

pytest

Documentation

Metadata

Release files for miarec-ftpfs 2025.5.27

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for miarec-ftpfs 2025.5.27
File Size Uploaded
miarec_ftpfs-2025.5.27.tar.gz 24.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for miarec-ftpfs 2025.5.27
File Interpreter ABI Platform
miarec_ftpfs-2025.5.27-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 41.7 kB

Release files / miarec_ftpfs-2025.5.27.tar.gz

Download URL miarec_ftpfs-2025.5.27.tar.gz
Size 24.1 kB
Tags Source
SHA-256 checksum
How to use checksums
c72e0c8a7088f6c76b3a804e03d615a9598b15b93d30c9cff32e6100baba6db3
BLAKE2b-256 checksum
How to use checksums
885d5c999c66b4f1e4182d2de92a38d18432c4d191ab244ebd6228129cf00b34
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / miarec_ftpfs-2025.5.27-py2.py3-none-any.whl

Download URL miarec_ftpfs-2025.5.27-py2.py3-none-any.whl
Size 17.6 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
e6713e35ee0a42c3717f5bbe976c9dd7a3fc8c90f217bcabd8ccc13e9363e439
BLAKE2b-256 checksum
How to use checksums
e89616cc6c0e97c5d9d6eec2f50cea181f2d2fd959c31a79fe9142f456cc03c3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release history Release notifications | RSS feed

This release

2025.5.27 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page