【问题标题】:Django's FILE_UPLOAD_PERMISSIONS not working for directoriesDjango 的 FILE_UPLOAD_PERMISSIONS 不适用于目录
【发布时间】:2020-08-07 11:43:44
【问题描述】:

我正在尝试使用 Django 的FILE_UPLOAD_PERMISSIONS 在用户上传文件时设置权限。该文件本身是使用正确的权限 (775) 创建的,但创建的任何目录似乎都使用默认权限 (755)。

示例: 如果为用户 (id = 123) 上传文件 (foo.jpg),则应将其保存到 media/123/foo.jpg,如果不存在则创建 123 目录。 foo.jpg775123755

如何使用正确的权限保存目录?如果相关,我在 httpd Docker 容器中使用带有 mod_wsgi 的 Apache。

【问题讨论】:

  • 您是否考虑过使用os.chmod 来设置创建时的目录权限?我可能无法解决根本问题,但值得一看。
  • @DanielMorell 我有,但实际的文件保存发生在 Django 内部,而不是我自己的代码。我不知道如何覆盖它,但如果可以的话,我会考虑它。

标签: python django apache permissions mod-wsgi


【解决方案1】:

Django 有一个单独的文件目录权限设置。它是FILE_UPLOAD_DIRECTORY_PERMISSIONS。您应该在 settings.py 文件中将其设置为 0o775

FILE_UPLOAD_DIRECTORY_PERMISSIONS documentation

File storage API documentation

【讨论】:

  • 我不知道我怎么错过了这么久。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-27
  • 2014-01-20
  • 2020-07-28
  • 1970-01-01
  • 2016-02-28
  • 2023-04-07
  • 1970-01-01
相关资源
最近更新 更多