Metadata-Version: 2.1
Name: simple-file-repository
Version: 0.3.0
Summary: A simple file and photo repository.
License: MIT
Author: theirix
Author-email: theirix@gmail.com
Requires-Python: >=3.5,<4.0
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Requires-Dist: boto3 (>=1.14.53,<2.0.0)
Requires-Dist: filemagic (>=1.6,<2.0)
Requires-Dist: requests (>=2.24.0,<3.0.0)
Description-Content-Type: text/markdown

Simple File Repository
======================

![Build](https://github.com/theirix/simple-file-repository/workflows/build/badge.svg)
![PyPI](https://img.shields.io/pypi/v/simple-file-repository)

A simple file and photo repository.
Underlying storage is a filesystem or a S3-compatible service.

## Installation

    pip install simple_file_repository

## Usage

### File storage

```python
    >>> import uuid
    >>> from simple_file_repository import FileStorage
    >>> storage = FileStorage(storage_directory='/tmp/repo', database='cats')
    >>> storage.store(b'content')
    UUID('72fc4a76-1ab7-4d60-9f6a-94aa0ad45b5b')
    >>> storage.get(uuid.UUID(hex='72fc4a76-1ab7-4d60-9f6a-94aa0ad45b5b'))
    b'content'
    >>> list(storage.list())
    ['72fc4a76-1ab7-4d60-9f6a-94aa0ad45b5b']
```

### Photo storage using S3

```python

from simple_file_repository import PhotoStorages

storages = PhotoStorages()

storages.init_app(names=['cats', 'dogs'],
                  storage_directory='/tmp/repo',
                  names_for_s3=['cats'],
                  imagemagick_convert='/usr/bin/convert',
                  access_key_id='',
                  secret_access_key='',
                  region='us-east-1', bucket='my-s3-bucket')

storages['cats'].store(b'image')

```

## License

MIT
