Django / 文件上传权限

发布于 2024-07-14 02:25:50 字数 155 浏览 14 评论 0原文

我编写了一个 django 应用程序,但从 Web 表单上传文件的文件权限有一些问题。

基本上我可以上传 .mp3 文件,但它始终保留 chmod 600。

容器文件夹具有 chmod 775,umask 设置为 022。

我使用共享托管服务。

I wrote a django app, but I have a little problem with the file permissions of the uploads files from a web form.

Basically I can upload a .mp3 file but it always keep chmod 600.

The container folder has chmod 775, and the umask is set to 022.

I'm in a shared hosting service.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

〃安静 2024-07-21 02:25:50

如果您使用 Python 2,请在 settings.py 中尝试此操作:

FILE_UPLOAD_PERMISSIONS = 0644

在 Python 3 中,八进制数字必须以 0o 开头,因此该行将是:

FILE_UPLOAD_PERMISSIONS = 0o644

有关更多详细信息 请参阅文档

Try this in your settings.py if you use Python 2:

FILE_UPLOAD_PERMISSIONS = 0644

In Python 3 octal numbers must start with 0o so the line would be:

FILE_UPLOAD_PERMISSIONS = 0o644

For more details see the documentation.

夜光 2024-07-21 02:25:50

希望这有用。 可以使用下面的方法。 除了解决权限错误之外,这还有另外两个优点。

  • 文件权限没有问题
  • 更快
  • 对于超过 2.5 MB 的文件,文件不会复制到 /tmp/ 文件夹(也节省空间)。

with open(file_name, 'wb+') as temp_file:
    for chunk in up_file.chunks():
        temp_file.write(chunk)

Hope this is useful. The below method can be used. This has 2 other advantages other than resolving permission errors.

  • No issues with file permissions
  • More faster
  • The file is not copied to /tmp/ folder for files which are more than 2.5 MB (saving space as well).

with open(file_name, 'wb+') as temp_file:
    for chunk in up_file.chunks():
        temp_file.write(chunk)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文