Unified storage interface.
Project description
fw-storage
Unified file storage interface tuned for simple filtering, memory-efficiency and performance to support processing large datasets in Flywheel imports and exports.
Supported storage backends:
fs://
- Local file-systems3://
- Amazon S3gs://
- Google Cloud Storageaz://
- Azure Blob Storage
Installation
Add as a poetry
dependency to your project:
poetry add fw-storage
The local file-system storage backend has no extra package dependencies. To use
any other backend, though, fw-storage
needs to be installed with extras. For
example, in order to access S3:
poetry add fw-storage --extras s3
Alternatively, install with all
extras to get everything:
poetry add fw-storage --extras all
Usage
from fw_storage import create_storage_client
# instantiate storage with URL
fs = create_storage_client("fs:///tmp")
# set objects from bytes, filepaths or open files
fs.set("test/file1.dat", b"content")
fs.set("test/file2.dat", "/tmp/test/file1.dat")
fs.set("test/file3.dat", open("/tmp/test/file2.dat"))
# list objects, filtering with expressions
files = list(fs.ls("test", include=["size<1kB"], exclude=["path!~file3"]))
len(files) == 2
# get object info with path, size, created and modified
info = fs.stat("test/file1.dat")
info.size == 7
# read object contents
file = fs.get("test/file1.dat")
file.read() == b"content"
# remove one or more objects
fs.rm("test", recurse=True)
Configuration
Credentials for cloud storage providers are loaded using the vendor SDKs to support every standard config file location and environment variable recommended by the provider:
In addition, az://
can be configured with the envvar AZ_ACCESS_KEY
.
Development
Install the project using poetry
and enable pre-commit
:
poetry install -E all
pre-commit install
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file fw_storage-3.5.1-py3-none-any.whl
.
File metadata
- Download URL: fw_storage-3.5.1-py3-none-any.whl
- Upload date:
- Size: 35.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.6 Linux/5.15.154+
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e989e377319adc62286255355d9faa4f864cac974aaf1d3e979dcd17cbfdd5e0 |
|
MD5 | 994627970d56a8af149a1483f2214edc |
|
BLAKE2b-256 | fd2111203ad4ff23c03f46e82d6252b46b250acecd109ac02dc0f0d93021d9ad |