Loading django/conf/global_settings.py +5 −0 Original line number Diff line number Diff line Loading @@ -313,6 +313,11 @@ FILE_UPLOAD_TEMP_DIR = None # you'd pass directly to os.chmod; see http://docs.python.org/lib/os-file-dir.html. FILE_UPLOAD_PERMISSIONS = None # The numeric mode to assign to newly-created directories, when uploading files. # The value should be a mode as you'd pass to os.chmod; # see http://docs.python.org/lib/os-file-dir.html. FILE_UPLOAD_DIRECTORY_PERMISSIONS = None # Python module path where user will place custom format definition. # The directory where this setting is pointing should contain subdirectories # named as the locales, containing a formats.py file Loading django/core/files/storage.py +10 −1 Original line number Diff line number Diff line Loading @@ -172,6 +172,15 @@ class FileSystemStorage(Storage): directory = os.path.dirname(full_path) if not os.path.exists(directory): try: if settings.FILE_UPLOAD_DIRECTORY_PERMISSIONS is not None: # os.makedirs applies the global umask, so we reset it, # for consistency with FILE_UPLOAD_PERMISSIONS behavior. old_umask = os.umask(0) try: os.makedirs(directory, settings.FILE_UPLOAD_DIRECTORY_PERMISSIONS) finally: os.umask(old_umask) else: os.makedirs(directory) except OSError as e: if e.errno != errno.EEXIST: Loading docs/ref/settings.txt +13 −0 Original line number Diff line number Diff line Loading @@ -1108,6 +1108,19 @@ Default: ``2621440`` (i.e. 2.5 MB). The maximum size (in bytes) that an upload will be before it gets streamed to the file system. See :doc:`/topics/files` for details. .. setting:: FILE_UPLOAD_DIRECTORY_PERMISSIONS FILE_UPLOAD_DIRECTORY_PERMISSIONS --------------------------------- .. versionadded:: 1.7 Default: ``None`` The numeric mode to apply to directories created in the process of uploading files. This value mirrors the functionality and caveats of the :setting:`FILE_UPLOAD_PERMISSIONS` setting. .. setting:: FILE_UPLOAD_PERMISSIONS FILE_UPLOAD_PERMISSIONS Loading docs/releases/1.7.txt +4 −0 Original line number Diff line number Diff line Loading @@ -138,6 +138,10 @@ Minor features * The :func:`~django.contrib.auth.decorators.permission_required` decorator can take a list of permissions as well as a single permission. * The new :setting:`FILE_UPLOAD_DIRECTORY_PERMISSIONS` setting controls the file system permissions of directories created during file upload, like :setting:`FILE_UPLOAD_PERMISSIONS` does for the files themselves. Backwards incompatible changes in 1.7 ===================================== Loading docs/topics/http/file-uploads.txt +6 −1 Original line number Diff line number Diff line Loading @@ -132,7 +132,7 @@ upload behavior. Changing upload handler behavior -------------------------------- Three settings control Django's file upload behavior: There are a few settings which control Django's file upload behavior: :setting:`FILE_UPLOAD_MAX_MEMORY_SIZE` The maximum size, in bytes, for files that will be uploaded into memory. Loading Loading @@ -167,6 +167,11 @@ Three settings control Django's file upload behavior: **Always prefix the mode with a 0.** :setting:`FILE_UPLOAD_DIRECTORY_PERMISSIONS` The numeric mode to apply to directories created in the process of uploading files. This value mirrors the functionality and caveats of the :setting:`FILE_UPLOAD_PERMISSIONS` setting. :setting:`FILE_UPLOAD_HANDLERS` The actual handlers for uploaded files. Changing this setting allows complete customization -- even replacement -- of Django's upload Loading Loading
django/conf/global_settings.py +5 −0 Original line number Diff line number Diff line Loading @@ -313,6 +313,11 @@ FILE_UPLOAD_TEMP_DIR = None # you'd pass directly to os.chmod; see http://docs.python.org/lib/os-file-dir.html. FILE_UPLOAD_PERMISSIONS = None # The numeric mode to assign to newly-created directories, when uploading files. # The value should be a mode as you'd pass to os.chmod; # see http://docs.python.org/lib/os-file-dir.html. FILE_UPLOAD_DIRECTORY_PERMISSIONS = None # Python module path where user will place custom format definition. # The directory where this setting is pointing should contain subdirectories # named as the locales, containing a formats.py file Loading
django/core/files/storage.py +10 −1 Original line number Diff line number Diff line Loading @@ -172,6 +172,15 @@ class FileSystemStorage(Storage): directory = os.path.dirname(full_path) if not os.path.exists(directory): try: if settings.FILE_UPLOAD_DIRECTORY_PERMISSIONS is not None: # os.makedirs applies the global umask, so we reset it, # for consistency with FILE_UPLOAD_PERMISSIONS behavior. old_umask = os.umask(0) try: os.makedirs(directory, settings.FILE_UPLOAD_DIRECTORY_PERMISSIONS) finally: os.umask(old_umask) else: os.makedirs(directory) except OSError as e: if e.errno != errno.EEXIST: Loading
docs/ref/settings.txt +13 −0 Original line number Diff line number Diff line Loading @@ -1108,6 +1108,19 @@ Default: ``2621440`` (i.e. 2.5 MB). The maximum size (in bytes) that an upload will be before it gets streamed to the file system. See :doc:`/topics/files` for details. .. setting:: FILE_UPLOAD_DIRECTORY_PERMISSIONS FILE_UPLOAD_DIRECTORY_PERMISSIONS --------------------------------- .. versionadded:: 1.7 Default: ``None`` The numeric mode to apply to directories created in the process of uploading files. This value mirrors the functionality and caveats of the :setting:`FILE_UPLOAD_PERMISSIONS` setting. .. setting:: FILE_UPLOAD_PERMISSIONS FILE_UPLOAD_PERMISSIONS Loading
docs/releases/1.7.txt +4 −0 Original line number Diff line number Diff line Loading @@ -138,6 +138,10 @@ Minor features * The :func:`~django.contrib.auth.decorators.permission_required` decorator can take a list of permissions as well as a single permission. * The new :setting:`FILE_UPLOAD_DIRECTORY_PERMISSIONS` setting controls the file system permissions of directories created during file upload, like :setting:`FILE_UPLOAD_PERMISSIONS` does for the files themselves. Backwards incompatible changes in 1.7 ===================================== Loading
docs/topics/http/file-uploads.txt +6 −1 Original line number Diff line number Diff line Loading @@ -132,7 +132,7 @@ upload behavior. Changing upload handler behavior -------------------------------- Three settings control Django's file upload behavior: There are a few settings which control Django's file upload behavior: :setting:`FILE_UPLOAD_MAX_MEMORY_SIZE` The maximum size, in bytes, for files that will be uploaded into memory. Loading Loading @@ -167,6 +167,11 @@ Three settings control Django's file upload behavior: **Always prefix the mode with a 0.** :setting:`FILE_UPLOAD_DIRECTORY_PERMISSIONS` The numeric mode to apply to directories created in the process of uploading files. This value mirrors the functionality and caveats of the :setting:`FILE_UPLOAD_PERMISSIONS` setting. :setting:`FILE_UPLOAD_HANDLERS` The actual handlers for uploaded files. Changing this setting allows complete customization -- even replacement -- of Django's upload Loading