Changelog¶
This document describes changes between past releases. For information about future releases, check milestones [1] and Vision.
1.9 (2016-03-15)¶
- Feature #112 - Introduced support of Django 1.9.
- Feature #113 - Introduced support of Python 3.5.
- Feature #116 -
HTTPFilehascontent_typeproperty. It makesHTTPDownloadViewproxyContent-Typeheader from remote location.
1.8 (2015-07-20)¶
Bugfixes.
- Bugfix #103 -
PathDownloadView.get_file()makes a single call toPathDownloadView.get_file()(was doing it twice). - Bugfix #104 - Pass numeric timestamp to Django’s
was_modified_since()(was passing a datetime).
1.7 (2015-06-13)¶
Bugfixes.
- Bugfix #87 - Filenames with commas are now supported. In download responses, filename is now surrounded by double quotes.
- Bugfix #97 -
HTTPFileproxies bytes asBytesIteratorIO(was undecoded urllib3 file object).StringIteratorIOhas been split intoTextIteratorIOandBytesIteratorIO.StringIteratorIOis deprecated but kept for backward compatibility as an alias forTextIteratorIO. - Bugfix #92 - Run demo using
make demo runserver(was broken). - Feature #99 - Tox runs project’s tests with Python 2.7, 3.3 and 3.4, and with Django 1.5 to 1.8.
- Refactoring #98 - Refreshed development environment: packaging, Tox and Sphinx.
1.6 (2014-03-03)¶
Python 3 support, development environment refactoring.
- Feature #46: introduced support for Python>=3.3.
- Feature #80: added documentation about “how to serve a file inline VS how to
serve a file as attachment”. Improved documentation of views’ base options
inherited from
DownloadMixin. - Feature #74: the Makefile in project’s repository no longer creates a virtualenv. Developers setup the environment as they like, i.e. using virtualenv, virtualenvwrapper or whatever. Tests are run with tox.
1.5 (2013-11-29)¶
X-Sendfile support and helpers to migrate for django-sendfile.
- Feature #2 - Introduced support of Lighttpd’s x-Sendfile.
- Feature #36 - Introduced support of Apache’s mod_xsendfile.
- Feature #41 -
django_downloadview.sendfileis a port of django-sendfile‘ssendfilefunction. The documentation contains notes about migrating from django-sendfile to django-downloadview.
1.4 (2013-11-24)¶
Bugfixes and documentation features.
- Bugfix #43 -
ObjectDownloadViewreturns HTTP 404 if model instance’s file field is empty (was HTTP 500). - Bugfix #7 - Special characters in file names (
Content-Dispositionheader) are urlencoded. An US-ASCII fallback is also provided. - Feature #10 - django-downloadview is registered on djangopackages.com.
- Feature #65 - INSTALL documentation shows “known good set” (KGS) of versions, i.e. versions that have been used in test environment.
1.3 (2013-11-08)¶
Big refactoring around middleware configuration, API readability and documentation.
Bugfix #57 -
PathDownloadViewopens files in binary mode (was text mode).Bugfix #48 - Fixed
basenameassertion inassert_download_response: checksContent-Dispositionheader.Bugfix #49 - Fixed
contentassertion inassert_download_response: checks only response’sstreaming_contentattribute.Bugfix #60 -
VirtualFile.__iter__usesforce_bytes()to support both “text-mode” and “binary-mode” content. See https://code.djangoproject.com/ticket/21321Feature #50 - Introduced
django_downloadview.DownloadDispatcherMiddlewarethat iterates over a list of configurable download middlewares. Allows to plug several download middlewares with different configurations.This middleware is mostly dedicated to internal usage. It is used by
SmartDownloadMiddlewaredescribed below.Feature #42 - Documentation shows how to stream generated content (yield). Introduced
django_downloadview.StringIteratorIO.Refactoring #51 - Dropped support of Python 2.6
Refactoring #25 - Introduced
django_downloadview.SmartDownloadMiddlewarewhich allows to setup multiple optimization rules for one backend.Deprecates the following settings related to previous single-and-global middleware:
NGINX_DOWNLOAD_MIDDLEWARE_MEDIA_ROOTNGINX_DOWNLOAD_MIDDLEWARE_MEDIA_URLNGINX_DOWNLOAD_MIDDLEWARE_EXPIRESNGINX_DOWNLOAD_MIDDLEWARE_WITH_BUFFERINGNGINX_DOWNLOAD_MIDDLEWARE_LIMIT_RATE
Refactoring #52 - ObjectDownloadView now inherits from SingleObjectMixin and BaseDownloadView (was DownloadMixin and BaseDetailView). Simplified DownloadMixin.render_to_response() signature.
Refactoring #40 - Documentation includes examples from demo project.
Refactoring #39 - Documentation focuses on usage, rather than API. Improved narrative documentation.
Refactoring #53 - Added base classes in
django_downloadview.middlewares, such asProxiedDownloadMiddleware.Refactoring #54 - Expose most Python API directly in django_downloadview package. Simplifies
importstatements in client applications. Splitted nginx module in a package.Added unit tests, improved code coverage.
1.2 (2013-05-28)¶
Bugfixes and documentation improvements.
- Bugfix #26 - Prevented computation of virtual file’s size, unless the file wrapper implements was_modified_since() method.
- Bugfix #34 - Improved support of files that do not implement modification time.
- Bugfix #35 - Fixed README conversion from reStructuredText to HTML (PyPI).
1.1 (2013-04-11)¶
Various improvements. Contains backward incompatible changes.
- Added HTTPDownloadView to proxy to arbitrary URL.
- Added VirtualDownloadView to support files living in memory.
- Using StreamingHttpResponse introduced with Django 1.5. Makes Django 1.5 a requirement!
- Added
django_downloadview.test.assert_download_responseutility. - Download views and response now use file wrappers. Most logic around file attributes, formerly in views, moved to wrappers.
- Replaced DownloadView by PathDownloadView and StorageDownloadView. Use the right one depending on the use case.
1.0 (2012-12-04)¶
- Introduced optimizations for Nginx X-Accel: a middleware and a decorator
- Introduced generic views: DownloadView and ObjectDownloadView
- Initialized project
Notes & references
| [1] | https://github.com/benoitbryon/django-downloadview/milestones |