A python library to upload files on cloud. Supported services - AWS S3, DigitalOcean Spaces, LocalStorage.
Project description
Storedoc
A python module to upload files on cloud. Supported services - AWS S3, DigitalOcean Spaces, LocalStorage.
Installation
To install, simply use pip
or easy_install
:
$ pip install --upgrade storedoc
or
$ easy_install --upgrade storedoc
Get Started
Upload to AWS S3 Buckets
Initialize the service
from storedoc import Service
client = Service('aws')
Get information of the service
client.describe()
Instantiate AWS S3 Client
client.connect(
region_name='//s3.your-region.amazonaws.com',
endpoint_url='https://s3.amazonaws.com',
aws_access_key_id='your-access-key',
aws_secret_access_key='your-secret'
)
Upload the file to S3 bucket (Note: File type supported <werkzeug.datastructures.FileStorage>)
# Default ACL (Access Control List) is set to 'private'.
# Default MIME Type results to 'binary/octet-stream' if no MIME type is provided.
client.upload_file(file, bucket='your-bucket-name')
# To add your custom ACL ('private'|'public-read'|'public-read-write'|'authenticated-read'|'aws-exe').
client.upload_file(file, bucket='your-bucket-name', acl='public-read')
# To add explicit MIME Type. Example for JPEG image upload, you can user
client.upload_file(file, bucket='your-bucket-name', mime='image/jpeg')
# You can let storedoc guess the MIME Type for you (Default is set to False)
client.upload_file(file, bucket='your-bucket-name', guess_mime=True)
Upload to DigitalOcean Spaces Buckets
Initialize the service
from storedoc import Service
client = Service('do')
Get information of the service
client.describe()
Instantiate DO Spaces Client
client.connect(
region_name='//s3.your-region.amazonaws.com',
endpoint_url='https://your-region.digitaloceanspaces.com',
aws_access_key_id='your-access-key',
aws_secret_access_key='your-secret'
)
Upload the file to S3 bucket (Note: File type supported <werkzeug.datastructures.FileStorage>)
# Default ACL (Access Control List) is set to 'private'.
# Default MIME Type results to 'binary/octet-stream' if no MIME type is provided.
client.upload_file(file, bucket='your-bucket-name')
# To add your custom ACL ('private'|'public-read'|'public-read-write'|'authenticated-read'|'aws-exe').
client.upload_file(file, bucket='your-bucket-name', acl='public-read')
# To add explicit MIME Type. Example for JPEG image upload, you can user
client.upload_file(file, bucket='your-bucket-name', mime='image/jpeg')
# You can let storedoc guess the MIME Type for you (Default is set to False)
client.upload_file(file, bucket='your-bucket-name', guess_mime=True)
Save File to Local Storage
Initialize the service
from storedoc import Service
client = LocalStorage()
Save file to working directory (Note: File type supported <werkzeug.datastructures.FileStorage>)
client.save_file(file)
Save file to specific directory (Note: File type supported <werkzeug.datastructures.FileStorage>)
client.save_file(file, folder='some-directory-name')
Features
- Upload Any file to AWS s3, DigitalOcean Spaces
- Set ACL Support
- Content Type Support
Third Party Libraries and Dependencies
The following libraries will be installed when you install the client library:
- boto3 (Amazon Web Services SDK for Python)
To-Dos
- Test cases.
Contribute
- Look for an open issue or create new issue to get a dialog going about the new feature or bug that you've discovered.
- Fork the repository on Github to start making your changes to the master branch (or branch off of it).
- Write a test which shows that the bug was fixed or that the feature works as expected.
- Make a pull request.
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 Distribution
storedoc-0.1.5.tar.gz
(4.2 kB
view details)
File details
Details for the file storedoc-0.1.5.tar.gz
.
File metadata
- Download URL: storedoc-0.1.5.tar.gz
- Upload date:
- Size: 4.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.33.0 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4463f56ca5046a0b177598102ecaf65c603a1e17d09f55a1aa0a6c965dbb857a |
|
MD5 | 5ca46cf7b8750bede14b468c7a4049b5 |
|
BLAKE2b-256 | 6c5d5eaf20c84ac66ca5d0901d2dfc1515c574c1939b8e35785d036922bb06c2 |