- Actually use
SFTP_STORAGE_HOST
inSFTPStorage
backend (#204 thanks @jbittel) - Fix
S3Boto3Storage
to avoid race conditions in a multi-threaded WSGI environment (#238 thanks @jdufresne) - Fix trying to localize a naive datetime when
settings.USE_TZ
isFalse
inS3Boto3Storage.modified_time
. (thanks to @tomchuk and @piglei for the reports and the patches, #235, #234) - Fix automatic bucket creation in
S3Boto3Storage
whenAWS_AUTO_CREATE_BUCKET
isTrue
(#196 thanks @linuxlewis) - Improve the documentation for the S3 backends (thanks to various contributors!)
- Drop support for Django 1.7 (#185)
- Deprecate hashpath, image, overwrite, mogile, symlinkorcopy, database, mogile, couchdb. See (issue #202) to discuss maintenance going forward
- Use a fixed
mtime
argument forGzipFile
inS3BotoStorage
andS3Boto3Storage
to ensure a stable output for gzipped files - Use
.putfileobj
instead of.put
inS3Boto3Storage
to use the transfer manager, allowing files greater than 5GB to be put on S3 (#194 , #201) - Update
S3Boto3Storage
for Django 1.10 (#181) (get_modified_time
andget_accessed_time
) thanks @JshWright - Fix bad kwarg name in
S3Boto3Storage
when AWS_PRELOAD_METADATA is True (#189, #190) thanks @leonsmith
- Add new backend
S3Boto3Storage
(#179) MASSIVE THANKS @mbarrien - Add a strict option to utils.setting (#176) thanks @ZuluPro
- Tests, documentation, fixing
.close
forSFTPStorage
(#177) thanks @ZuluPro - Tests, documentation, add .readlines for
FTPStorage
(#175) thanks @ZuluPro - Tests and documentation for
DropBoxStorage
(#174) thanks @ZuluPro - Fix
MANIFEST.in
to not ship.pyc
files. (#145) thanks @fladi - Enable CI testing of Python3.5 and fix test failure from api change (#171) thanks @tnir
- Files that have a guessable encoding (e.g. gzip or compress) will be uploaded with that Content-Encoding
in the
s3boto
backend. Compressable types such asapplication/javascript
will still be gzipped. PR #122 thanks @cambonf - Fix
DropBoxStorage.exists
check and addDropBoxStorage.url
(#127) thanks @zuck - Add
GS_HOST
setting (with a default ofGSConnection.DefaultHost
) to fixGSBotoStorage
. Issue #124. Fixed in #125. Thanks @patgmiller @dcgoss.
- This package is now released on PyPI as django-storages. Please update your requirements files to django-storages==1.4.
- Fix memory leak from not closing underlying temp file in
s3boto
backend (#106) thanks @kmmbvnr - Allow easily specifying a custom expiry time when generating a url for
S3BotoStorage
(#96) thanks @mattbriancon - Check for bucket existence when the empty path ('') is passed to
storage.exists
inS3BotoStorage
- this prevents a crash when runningcollecstatic -c
on Django 1.9.1 (#112) fixed in #116 thanks @xblitz
- A few Azure Storage fixes [pass the content-type to Azure, handle chunked content, fix
url
] (#45) thanks @erlingbo - Add support for a Dropbox (
dropbox
) storage backend, thanks @ZuluPro (#76) - Various fixes to the
apache_libcloud
backend [return the number of bytes asked for by.read
, make.name
non-private, don't initialize to an emptyBytesIO
object] thanks @kaedroho (#55) - Fix multi-part uploads in
s3boto
backend not respectingAWS_S3_ENCRYPTION
(#94) thanks @andersontep - Automatically gzip svg files thanks @comandrei (#100)
- Drop Support for Django 1.5 and Python2.6
- Remove previously deprecated mongodb backend
- Remove previously deprecated
parse_ts_extended
from s3boto storage - Add support for Django 1.8+ (#36)
- Add
AWS_S3_PROXY_HOST
andAWS_S3_PROXY_PORT
settings for s3boto backend (#41) - Fix Python3K compat issue in apache_libcloud (#52)
- Fix Google Storage backend not respecting
GS_IS_GZIPPED
setting (#51, #60) thanks @stmos - Rename FTP
_name
attribute toname
which is what the DjangoFile
api is expecting (#70) - Put
StorageMixin
first in inheritance to maintain backwards compat with older versions of Django (#63)
- Variety of FTP backend fixes (fix
exists
, addmodified_time
, remove call to non-existent function) (#26) - Apparently the year changed to 2015
- Remove always show all warnings filter (#21)
- Release package as a wheel
- Avoid resource warning during install (#20)
- Made
S3BotoStorage
deconstructible (previously onlyS3BotoStorageFile
was deconstructible) (#19)
- Fix
storage.modified_time
crashing on new files whenAWS_PRELOAD_METADATA=True
(#11, #12, #14) - Deprecate and issue warning about
parse_ts_extended
- Deprecate mongodb backend - django-mongodb-engine now ships its own storage backend
- Add text/javascript mimetype to S3BotoStorage gzip allowed defaults
- Add support for Django 1.7 migrations in S3BotoStorage and ApacheLibCloudStorage (#5, #8)
- Python3K (3.3+) now available for S3Boto backend (#4)
- Remove legacy S3 storage (#1)
- Remove mosso files backend (#2)
NOTE: Version 1.1.9 is the first release of django-storages after the fork. It represents the current (2014-12-08) state of the original django-storages in master with no additional changes. This is the first release of the code base since March 2013.
- Fix syntax for Python3 with pull-request #91
- Support pushing content type from File object to GridFS with pull-request #90
- Support passing a region to the libcloud driver with pull-request #86
- Handle trailing slash paths fixes #188 fixed by pull-request #85
- Use a SpooledTemporaryFile to conserve memory in S3BotoFile pull-request #69
- Guess content-type for S3BotoStorageFile the same way that _save() in S3BotoStorage does
- Pass headers and response_headers through from url to generate_url in S3BotoStorage pull-request #65
- Added AWS_S3_HOST, AWS_S3_PORT and AWS_S3_USE_SSL settings to specify host, port and is_secure in pull-request #66
Everything Below Here Was Previously Released on PyPi under django-storages
- Fixes #156 regarding date parsing, ValueError when running collectstatic
- Proper handling of boto dev version parsing
- Made SFTP URLs accessible, now uses settings.MEDIA_URL instead of sftp://
- Listing of huge buckets on S3 is now prevented by using the prefix argument to boto's list() method
- Initial support for Windows Azure Storage
- Switched to useing boto's parse_ts date parser getting last modified info when using S3boto backend
- Fixed key handling in S3boto and Google Storage backends
- Account for lack of multipart upload in Google Storage backend
- Fixed seek() issue when using AWS_IS_GZIPPED by darkness51 with pull-request #50
- Improvements to S3BotoStorage and GSBotoStorage
- Merged many changes from Jannis Leidel (mostly regarding gzipping)
- Fixed tests by Ian Lewis
- Added support for Google Cloud Storage backend by Jannis Leidel
- Updated license file by Dan Loewenherz, fixes #133 with pull-request #44
- Set Content-Type header for use in upload_part_from_file by Gerardo Curiel
- Pass the rewind parameter to Boto's set_contents_from_file method by Jannis Leidel with pull-request #45
- Fix for FTPStorageFile close() method by Mathieu Comandon with pull-request #43
- Minor refactoring by Oktay Sancak with pull-request #48
- Ungzip on download based on Content-Encoding by Gavin Wahl with pull-request #46
- Add support for S3 server-side encryption by Tobias McNulty with pull-request #17
- Add an optional setting to the boto storage to produce protocol-relative URLs, fixes #105
- Merged pull request #36 from freakboy3742 Keith-Magee, improvements to Apache Libcloud backend and docs
- Merged pull request #35 from atodorov, allows more granular S3 access settings
- Add support for SSL in Rackspace Cloudfiles backend
- Fixed the listdir() method in s3boto backend, fixes #57
- Added base url tests for safe_join in s3boto backend
- Merged pull request #20 from alanjds, fixed SuspiciousOperation warning if AWS_LOCATION ends with '/'
- Added FILE_BUFFER_SIZE setting to s3boto backend
- Merged pull request #30 from pendletongp, resolves #108, #109 and #110
- Updated the modified_time() method so that it doesn't require dateutil. fixes #111
- Merged pull request #16 from chamal, adds Apache Libcloud backend
- When preloading the S3 metadata make sure we reset the files key during saving to prevent stale metadata
- Merged pull request #24 from tobias.mcnulty, fixes bug where s3boto backend returns modified_time in wrong time zone
- Fixed HashPathStorage.location to no longer use settings.MEDIA_ROOT
- Remove download_url from setup file so PyPI dist is used
- Added PendingDeprecationWarning for mosso backend
- Merged pull request #13 from marcoala, adds
SFTP_KNOWN_HOST_FILE
setting to SFTP storage backend - Merged pull request #12 from ryankask, fixes HashPathStorage tests that delete remote media
- Merged pull request #10 from key, adds support for django-mongodb-engine 0.4.0 or later, fixes GridFS file deletion bug
- Fixed S3BotoStorage performance problem calling modified_time()
- Added deprecation warning for s3 backend, refs #40
- Fixed CLOUDFILES_CONNECTION_KWARGS import error, fixes #78
- Switched to sphinx documentation, set official docs up on http://django-storages.rtfd.org/
- HashPathStorage uses self.exists now, fixes #83
- Created this lovely change log
- Fixed #89: broken StringIO import in CloudFiles backend
- Merged pull request #5: HashPathStorage path bug