Skip to main content

MinIO S3 filesystem for PyFilesystem2

Project description

MINIOFS is a PyFilesystem interface to Amazon S3 cloud storage.

As a PyFilesystem concrete class, MINIOFS allows you to work with S3 in the same way as any other supported filesystem.

Installing

You can install MINIOFS from pip as follows:

pip install fs-miniofs

Opening a MINIOFS

Open an MINIOFS by explicitly using the constructor:

from fs_miniofs import MINIOFS
miniofs = MINIOFS('mybucket')

Or with a FS URL:

from fs import open_fs
miniofs = open_fs('minio://mybucket')

Downloading Files

To download files from an S3 bucket, open a file on the S3 filesystem for reading, then write the data to a file on the local filesystem. Here’s an example that copies a file example.mov from S3 to your HD:

from fs.tools import copy_file_data
with miniofs.open('example.mov', 'rb') as remote_file:
    with open('example.mov', 'wb') as local_file:
        copy_file_data(remote_file, local_file)

Although it is preferable to use the higher-level functionality in the fs.copy module. Here’s an example:

from fs.copy import copy_file
copy_file(miniofs, 'example.mov', './', 'example.mov')

Uploading Files

You can upload files in the same way. Simply copy a file from a source filesystem to the S3 filesystem. See Moving and Copying for more information.

ExtraArgs

S3 objects have additional properties, beyond a traditional filesystem. These options can be set using the upload_args and download_args properties. which are handed to upload and download methods, as appropriate, for the lifetime of the filesystem instance.

For example, to set the cache-control header of all objects uploaded to a bucket:

import fs, fs.mirror
miniofs = MINIOFS('example', upload_args={"CacheControl": "max-age=2592000", "ACL": "public-read"})
fs.mirror.mirror('/path/to/mirror', miniofs)

see the Boto3 docs for more information.

acl and cache_control are exposed explicitly for convenience, and can be used in URLs. It is important to URL-Escape the cache_control value in a URL, as it may contain special characters.

import fs, fs.mirror
with open fs.open_fs('s3://example?acl=public-read&cache_control=max-age%3D2592000%2Cpublic') as miniofs
    fs.mirror.mirror('/path/to/mirror', miniofs)

S3 URLs

You can get a public URL to a file on a S3 bucket as follows:

movie_url = miniofs.geturl('example.mov')

Documentation

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fs-miniofs-1.1.2.tar.gz (10.4 kB view details)

Uploaded Source

Built Distribution

fs_miniofs-1.1.2-py2.py3-none-any.whl (10.6 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file fs-miniofs-1.1.2.tar.gz.

File metadata

  • Download URL: fs-miniofs-1.1.2.tar.gz
  • Upload date:
  • Size: 10.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.6

File hashes

Hashes for fs-miniofs-1.1.2.tar.gz
Algorithm Hash digest
SHA256 726ed3ec950c62aae2e2de64f4aefcfc6835ee00e3a3e5678054aa552f77d465
MD5 eba437b916736c1ec084c58cf8377003
BLAKE2b-256 3536ae666c05f929876aed87cbac395e342fa3fc0a57c3115a2026fa5eaa40c2

See more details on using hashes here.

File details

Details for the file fs_miniofs-1.1.2-py2.py3-none-any.whl.

File metadata

  • Download URL: fs_miniofs-1.1.2-py2.py3-none-any.whl
  • Upload date:
  • Size: 10.6 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.6

File hashes

Hashes for fs_miniofs-1.1.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 3ceae023ad9cd67bf30517f6514ea95c543497c274e7966c385219431e180c9b
MD5 2534fab3e4c95e3ece7ab208f113f1a7
BLAKE2b-256 37069801f6e13bd07f7c523784e9aa39ef4926d7fb9953ded36e1a3bf71cd7cc

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page