1
0
mirror of https://github.com/django/django.git synced 2025-10-24 06:06:09 +00:00

Fixed #34110 -- Added in-memory file storage.

Thanks Paolo Melchiorre, Carlton Gibson, and Mariusz Felisiak for
reviews.
This commit is contained in:
Francesco Panico
2022-11-11 07:17:49 +01:00
committed by Mariusz Felisiak
parent 04fdf71933
commit 72efd840a8
7 changed files with 638 additions and 2 deletions

View File

@@ -74,6 +74,39 @@ The ``FileSystemStorage`` class
time of the last metadata change, and on others (like Windows), it's
the creation time of the file.
The ``InMemoryStorage`` class
=============================
.. versionadded:: 4.2
.. class:: InMemoryStorage(location=None, base_url=None, file_permissions_mode=None, directory_permissions_mode=None)
The :class:`~django.core.files.storage.InMemoryStorage` class implements
a memory-based file storage. It has no persistence, but can be useful for
speeding up tests by avoiding disk access.
.. attribute:: location
Absolute path to the directory name assigned to files. Defaults to the
value of your :setting:`MEDIA_ROOT` setting.
.. attribute:: base_url
URL that serves the files stored at this location.
Defaults to the value of your :setting:`MEDIA_URL` setting.
.. attribute:: file_permissions_mode
The file system permissions assigned to files, provided for
compatibility with ``FileSystemStorage``. Defaults to
:setting:`FILE_UPLOAD_PERMISSIONS`.
.. attribute:: directory_permissions_mode
The file system permissions assigned to directories, provided for
compatibility with ``FileSystemStorage``. Defaults to
:setting:`FILE_UPLOAD_DIRECTORY_PERMISSIONS`.
The ``Storage`` class
=====================

View File

@@ -85,6 +85,12 @@ The Breach (HTB) paper`_.
.. _Heal The Breach (HTB) paper: https://ieeexplore.ieee.org/document/9754554
In-memory file storage
----------------------
The new ``django.core.files.storage.InMemoryStorage`` class provides a
non-persistent storage useful for speeding up tests by avoiding disk access.
Minor features
--------------

View File

@@ -366,3 +366,12 @@ Preserving the test database
The :option:`test --keepdb` option preserves the test database between test
runs. It skips the create and destroy actions which can greatly decrease the
time to run tests.
Avoiding disk access for media files
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. versionadded:: 4.2
The :class:`~django.core.files.storage.InMemoryStorage` is a convenient way to
prevent disk access for media files. All data is kept in memory, then it gets
discarded after tests run.