https://github.com/fschuch/file_storehouse
Manage files in bulk quantity using a friendly dict-like interface.
https://github.com/fschuch/file_storehouse
file-manager python3 s3-bucket
Last synced: 6 months ago
JSON representation
Manage files in bulk quantity using a friendly dict-like interface.
- Host: GitHub
- URL: https://github.com/fschuch/file_storehouse
- Owner: fschuch
- License: mit
- Created: 2022-07-26T23:46:49.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2025-07-11T22:20:05.000Z (6 months ago)
- Last Synced: 2025-07-11T22:45:44.358Z (6 months ago)
- Topics: file-manager, python3, s3-bucket
- Language: Python
- Homepage: https://pypi.org/project/file-storehouse/
- Size: 1.83 MB
- Stars: 5
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# File-Storehouse
Manage files in bulk quantity using a friendly dict-like interface
______________________________________________________________________
- QA:
[](https://github.com/fschuch/file_storehouse/actions/workflows/ci.yaml)
[](https://github.com/fschuch/file_storehouse/actions/workflows/github-code-scanning/codeql)
[](https://results.pre-commit.ci/latest/github/fschuch/file_storehouse/main)
[](https://sonarcloud.io/summary/new_code?id=fschuch_file_storehouse)
[](https://sonarcloud.io/summary/new_code?id=fschuch_file_storehouse)
[](https://www.codefactor.io/repository/github/fschuch/file_storehouse)
- Docs:
[](https://docs.fschuch.com/file_storehouse)
- Meta:
[](https://github.com/fschuch/wizard-template)
[](https://mypy-lang.org/)
[](https://github.com/pypa/hatch)
[](https://github.com/astral-sh/ruff)

[](https://jacobtomlinson.dev/effver)
______________________________________________________________________
## Overview
File-Storehouse is a lightweight Python package that aims to facilitate the management of files in bulk quantity.
There are four key points that are combined to achieving such a goal:
- Mapping Interface - The file managers are leveraged by the Mapping and MutableMapping interfaces, which means that everything can be done using a friendly dict-like interface. For instance:
```python
# Store data to a file:
file_manager[id] = file_content
# Retrine data from a file
file_content = file_manager[id]
# Delete a file
del file_manager[id]
# Loop through all files
for id, content in file_manager.items():
pass
# and many more...
```
- Engine - Choose the engine (or back-end) your file managers are connected to:
- S3 buckets, powered by [boto3](https://boto3.amazonaws.com/v1/documentation/api/latest/index.html);
- Local filesystem and more are planned.
- Key Mapping - Customize a two-way key mapping between the dict-like keys and the files' location at the engines according to the business rules of your application.
- Transformations - Configure a chained operation to convert the files back and forward between your Python code and the storage. The supported operations are:
- Encode/decode bytes and strings;
- Dump/load Json files;
- Compress/decompress tarballs and more transformations are planned.
## Example
Please, take a look at the [user story](tests/test_user_story.py) used for testing.
## Copyright and License
© 2022 Felipe N. Schuch.
All content is under [MIT License](https://github.com/fschuch/file_storehouse/blob/master/LICENSE).
