当请求太大时,Nginx(我认为)会以错误的权限保存文件

2024-05-02

所以,我对托管和 Linux 等都是完全陌生的,所以如果我说错了,请原谅我。我还在学习 :)

我正在使用 Django 创建一个小型个人网站。我想把它放到网上看看是否一切正常。我从 linode 买了一台便宜的服务器,并使用 Digital-Ocean 的指南(讽刺的是)我让一切正常工作。当时我很开心。

但是......有一个主要问题,我已经阅读了一半的互联网,但找不到任何类似的问题:当发布请求大于〜4MB(上传图像等)时,文件将以错误的权限保存。

当请求大小小于 4MB 左右时,一切正常,没有任何问题。当请求大小较大时,所有内容都会上传并保存到服务器,没有任何问题,但从那时起我无法再从浏览器访问文件,并且网站不断对这些文件抛出 403 禁止。那是因为文件突然以错误的权限或类似的情况保存。

禁止文件的权限: -rw-------- 1 [用户] root 7900880 5月12日08:24 filename1.pdf

工作文件的权限: -rw-r--r-- 1 [用户] root 207420 5月11日19:36 filename2.jpg

我不确定工作文件是否完全正确,因为我认为它不需要 root。

我厌倦了这个问题。听起来很不合逻辑;文件大小与权限有什么关系!?事实上,我缺乏这方面的经验并没有让解决这个问题变得更容易。如果这里有人有黄金秘诀,我将非常感激:)


我在用着Nginx and uWSGI on 乌班图17.04与一个姜戈 1.11应用。


在我自己努力解决这个问题之后,我找到了答案。 AlexD 关于以不同方式处理大文件的理论是正确的。

来自 Django 的文档:

文件上传权限

默认值:无

将新上传的文件设置为的数字模式(即 0o644)。有关这些模式含义的更多信息,请参阅 os.chmod() 的文档。

如果未给出或为“无”,您将获得依赖于操作系统的行为。在大多数平台上,临时文件的模式为 0o600,从内存中保存的文件将使用系统的标准 umask 进行保存。

所以总结一下:较大的文件使用临时文件存储,默认情况下会获得0o600权限。通过将值设置为FILE_UPLOAD_PERMISSIONS.

https://docs.djangoproject.com/en/1.11/ref/settings/#file-upload-permissions https://docs.djangoproject.com/en/1.11/ref/settings/#file-upload-permissions

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当请求太大时,Nginx(我认为)会以错误的权限保存文件 的相关文章

随机推荐

  • Ionic 4 键盘覆盖输入字段

    我有一个 Ionic 4 应用程序 其中有一个包含输入的表单 当用户单击输入时 它会打开键盘 但会隐藏内容 而不滚动 有没有办法解决 这是我的代码
  • 如何在iPhone真机上打开数据库sqlite文件?

    我正在通过电缆在我的真实设备中调试应用程序 我有一部 iPhone 6 我想检查我的数据库并使用 sqlite3 操作来查询我的结果 其他问题和教程解释了只能在模拟器中执行此操作 但我使用的是真正的 iPhone 在AppDelegate中
  • MySQL:错误 1215 (HY000):无法添加外键约束

    我读过了数据库系统概念 第六版 西尔伯沙茨 我将在 OS X 上的 MySQL 上实现第 2 章中所示的大学数据库系统 但我在创建表格时遇到了麻烦course 桌子department好像 mysql gt select from depa
  • Swing JTable:当行可见或滚动到底部时发生事件?

    我正在寻找一种方法 以便在 JTable 滚动时收到通知 以便特定行变得可见 或者在表底部滚动到视图中时失败 理想情况下 这应该在不轮询的情况下完成 而是通过一些事件触发来完成 有任何想法吗 Add a ChangeListener到滚动窗
  • Jquery 手风琴默认不折叠

    我正在使用 bootstrap 提供的折叠插件 这是一个 jquery 简单插件 但是它默认折叠 如何修改以使折叠项默认隐藏 只有当我按下标题时 该项目才会折叠并显示 谢谢 插件的文档 只有几行 所以只需要一分钟 http twitter
  • 从命令行更新具有固定依赖项的 npm 包

    我有一个带有更新的固定版本的 npm 包 package json 摘录示例 devDependencies someFixedVersionPackage 1 0 0 1 1 0 is latest anotherFixedVersion
  • mean.io - 错误:“请求实体太大”。如何在meanio模块之外增加bodyParser限制?

    我在mean io 应用程序中收到以下错误 Error request entity too large 为了解决这个问题 我在以下位置增加了meanio模块中的bodyParser限制 node modules meanio lib co
  • Selenium:从文本框中删除内容

    通过硒 如何从文本框中删除内容 我必须使用 selenium 命令从文本框中删除最后 2 个字符 例如ABCD 到AB 尝试这个 selenium type text box object ABCD selenium typeKeys te
  • 带有无序列表的 Flexbox

    我正在尝试学习 Flexbox 我真的很喜欢它 我正在尝试 玩动态宽度 当我这样做时div它有效 如果我尝试这样做li 它也不起作用 我的代码已上线codepen http codepen io jrock2004 pen pjvZJd d
  • 如何展开和折叠列表视图中的项目

    我对安卓还很陌生 我想实现一个列表视图 它包含一些列表项 当单击它们时 它们应该展开以显示更多信息 但我找不到办法做到这一点 这是我的activity main xml
  • jtree 编程式多选

    是否能够以编程方式选择 JTree 中的多个树节点 我已经设置了多选模式tree getSelectionModel setSelectionMode TreeSelectionModel DISCONTIGUOUS TREE SELECT
  • Vue.js 严格模式下不允许对一个属性进行多个定义

    再会 我们正在使用 Vuejs Vuex vue router 构建我们的应用程序https github com vuejs vue hackernews 2 0 https github com vuejs vue hackernews
  • 通过变量引用工作簿和工作表

    引用不同工作簿的工作表的正确语法是什么 以下代码在最后一行抛出错误 谢谢 Instantiate Workbook variables Dim mWB As Workbook master workbook Instantiate Work
  • 我无法从指向派生类的指针和指向基类的指针的指针进行分配? [复制]

    这个问题在这里已经有答案了 可能的重复 派生 到基础 之间的转换 https stackoverflow com questions 8026040 conversion between derived to base 在主要使用 Pyth
  • OpenRasta - Scott Littlewoods 基本身份验证工作示例

    我正在测试使用 OpenRasta 作为 ASP NET MVC 的可行替代方案的可行性 但是 我遇到了有关身份验证的绊脚石 让我明确一点 开放式摘要身份验证 不是一个选项在此刻 我读到 Scott Littlewood 为 OpenRas
  • 使用 Hadoop 映射两个数据集

    假设我有两个键值数据集 数据集A和B 我们称它们为数据集A和B 我想用 B 组的数据更新 A 组中的所有数据 其中两者在键上匹配 因为我要处理如此大量的数据 所以我使用 Hadoop 进行 MapReduce 我担心的是 为了在 A 和 B
  • 将数值和分类数据混合到具有密集层的 keras 序列模型中

    我在 Pandas 数据框中有一个训练集 我将此数据框传递到model fit with df values 以下是有关 df 的一些信息 df values shape 981 5 df values 0 array 163 0 6 83
  • 查询 ssisdb 以查找包的名称

    我正在查询 ssis 目录以找出目录中所有包的名称 Folder1项目中只有6个包 但查询却给出了9条记录 1 SELECT P NAME FROM SSISDB internal projects PRJ INNER JOIN SSISD
  • 找不到方法的私有访问器

    在 Visual Studio 2010 下使用上下文菜单生成新的单元测试时 右键单击方法名称 gt 生成单元测试 我收到此错误 Private Accessor for methodName is not found Please reb
  • 当请求太大时,Nginx(我认为)会以错误的权限保存文件

    所以 我对托管和 Linux 等都是完全陌生的 所以如果我说错了 请原谅我 我还在学习 我正在使用 Django 创建一个小型个人网站 我想把它放到网上看看是否一切正常 我从 linode 买了一台便宜的服务器 并使用 Digital Oc