Package: django-s3-storage-patched
django-s3-storageprovides a Django Amazon S3 file storage.FeaturesDjango file storage for Amazon S3.Django static file storage for Amazon S3.Works in Python 3!InstallationInstall usingpip installdjango-s3-storage.Add'django_s3_storage'to yourINSTALLED_APPSsetting.Set yourDEFAULT_FILE_STORAGEsetting to"django_s3_storage.storage.S3Storage".Set yourSTATICFILES_STORAGEsetting to"django_s3_storage.storage.StaticS3Storage"or"django_s3_storage.storage.ManifestStaticS3Storage".Configure your Amazon S3 settings (see Available settings, below).Available settings# The region to connect to when storing files.AWS_REGION="us-east-1"# The AWS access key used to access the storage buckets.AWS_ACCESS_KEY_ID=""# The AWS secret access key used to access the storage buckets.AWS_SECRET_ACCESS_KEY=""# The S3 bucket used to store uploaded files.AWS_S3_BUCKET_NAME=""# The S3 calling format to use to connect to the bucket.AWS_S3_CALLING_FORMAT="boto.s3.connection.OrdinaryCallingFormat"# A prefix to add to the start of all uploaded files.AWS_S3_KEY_PREFIX=""# Whether to enable querystring authentication for uploaded files.AWS_S3_BUCKET_AUTH=True# The expire time used to access uploaded files.AWS_S3_MAX_AGE_SECONDS=60*60# 1 hour.# A custom URL prefix to use for public-facing URLs for uploaded files.AWS_S3_PUBLIC_URL=""# Whether to set the storage class of uploaded files to REDUCED_REDUNDANCY.AWS_S3_REDUCED_REDUNDANCY=False# The S3 bucket used to store static files.AWS_S3_BUCKET_NAME_STATIC=""# The S3 calling format to use to connect to the static bucket.AWS_S3_CALLING_FORMAT_STATIC="boto.s3.connection.OrdinaryCallingFormat"# Whether to enable querystring authentication for static files.AWS_S3_BUCKET_AUTH_STATIC=False# A prefix to add to the start of all static files.AWS_S3_KEY_PREFIX_STATIC=""# The expire time used to access static files.AWS_S3_MAX_AGE_SECONDS_STATIC=60*60*24*365# 1 year.# A custom URL prefix to use for public-facing URLs for static files.AWS_S3_PUBLIC_URL_STATIC=""# Whether to set the storage class of static files to REDUCED_REDUNDANCY.AWS_S3_REDUCED_REDUNDANCY_STATIC=FalseImportant:If you change any of theAWS_S3_BUCKET_AUTHorAWS_S3_MAX_AGE_SECONDSsettings, you will need
to run./manage.py s3_sync_meta path.to.your.storagebefore the changes will be applied to existing media files.How it worksBy default, uploaded user files are stored on Amazon S3 using the private access control level. When a URL for the file
is generated, querystring auth with a timeout of 1 hour is used to secure access to the file.By default, static files are stored on Amazon S3 using the public access control level and aggressive caching.Text-based files, such as HTML, XML and JSON, are stored using gzip to save space and improve download
performance.At the moment, files stored on S3 can only be opened in read-only mode.Optimizing media file cachingThe default settings assume that user-uploaded file are private. This means that
they are only accessible via S3 authenticated URLs, which is bad for browser caching.To make user-uploaded files public, and enable aggressive caching, make the following changes to yoursettings.py.AWS_S3_BUCKET_AUTH=FalseAWS_S3_MAX_AGE_SECONDS=60*60*24*365# 1 year.Important:By making these changes, all user-uploaded files will be public. Ensure they do not contain confidential information.Important:If you change any of theAWS_S3_BUCKET_AUTHorAWS_S3_MAX_AGE_SECONDSsettings, you will need
to run./manage.py s3_sync_meta path.to.your.storagebefore the changes will be applied to existing media files.Management commandss3_sync_metaSyncronizes the meta information on S3 files.If you change any of theAWS_S3_BUCKET_AUTHorAWS_S3_MAX_AGE_SECONDSsettings, you will need
to run this command before the changes will be applied to existing media files.Example usage:./manage.py s3_sync_meta django.core.files.storage.default_storageHow does django-s3-storage compare with django-storages?Thedjango-storages-reduxfork of django-storages appears to be
the most widely used S3 storage backend for Django. It also supports a variety of other storage backends.django-s3-storage provides similar features, but only supports S3. It was originally written to support Python 3
at a time when the future of django-storages was unclear. It’s a small, well-tested and self-contained library
that aims to do one thing very well.The author of django-s3-storage is not aware of significant differences in functionality with django-storages-redux.
If you notice some differences, please file an issue!Build statusThis project is built on every push using the Travis-CI service.Support and announcementsDownloads and bug tracking can be found at themain project
website.More informationThe django-s3-storage project was developed by Dave Hall. You can get the code
from thedjango-s3-storage project site.Dave Hall is a freelance web developer, based in Cambridge, UK. You can usually
find him on the Internet in a number of different places:WebsiteTwitterGoogle Profile