Skip to main content

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

  1. Look for an open issue or create new issue to get a dialog going about the new feature or bug that you've discovered.
  2. Fork the repository on Github to start making your changes to the master branch (or branch off of it).
  3. Write a test which shows that the bug was fixed or that the feature works as expected.
  4. Make a pull request.

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

storedoc-0.1.7.tar.gz (4.2 kB view details)

Uploaded Source

Built Distribution

storedoc-0.1.7-py3.7.egg (12.6 kB view details)

Uploaded Source

File details

Details for the file storedoc-0.1.7.tar.gz.

File metadata

  • Download URL: storedoc-0.1.7.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

Hashes for storedoc-0.1.7.tar.gz
Algorithm Hash digest
SHA256 225c8da1864c4926adb6667d22c2c3bf80ab779b684fc5fc5925ad2226470997
MD5 5dc237a567232d2c9a84f220e6b678a9
BLAKE2b-256 2ff70aa35fab57bd70fedcacadfeffab1daa7c5bfe20e30f83c3d539813e7ee3

See more details on using hashes here.

File details

Details for the file storedoc-0.1.7-py3.7.egg.

File metadata

  • Download URL: storedoc-0.1.7-py3.7.egg
  • Upload date:
  • Size: 12.6 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

Hashes for storedoc-0.1.7-py3.7.egg
Algorithm Hash digest
SHA256 f069976ffedaf1d2782998d6c49c12e5d9d8771b14f853d7efe46c632840ed30
MD5 0afc7e38eb2107643e473469395450a6
BLAKE2b-256 ce4d2057a01437d1059cd0c5138b8c23d90a1e894249362fe01dafbeeaeabc74

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