在网站中存储用户上传的文件的最佳方式是什么?

2023-12-28

我正在尝试创建一个网站,需要在其中存储一些用户上传的文件(如一些个人资料图片、一些 xml 文件等)。

那么存储这些文件的最佳方式是什么?

目前,我正在服务器上为每个注册的新用户创建一个新目录,并将每个用户的文件存储在各自的目录中,但有人告诉我这不是最好的方法。

那么,我该如何存储这些文件呢?我是否创建一个公共目录并根据用户 ID 或与用户相关的内容命名文件,或者继续为每个用户创建一个新目录?


可行的解决方案将取决于您的要求,例如您预计有多少用户。每个用户一个目录的解决方案可能很快就会遇到一些文件系统限制(对于 ext3,一个目录中的最大子目录数固定为 32000)。

每个用户一个文件在很长一段时间内应该没问题(请参阅:一个目录中有多少个文件算太多? https://stackoverflow.com/questions/466521/how-many-files-in-a-directory-is-too-many).

最后,如果您的用户群增长,您可以使用固定数量的分片(例如,基于用户 ID)来限制目录数量和每个目录的文件数量(例如,请参阅git 如何以松散格式存储其对象 http://web.archive.org/web/20120211182825/http://book.git-scm.com/7_how_git_stores_objects.html).

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

在网站中存储用户上传的文件的最佳方式是什么? 的相关文章

  • 重新加载更新的 javascript> 代码而不完全重新加载 html 页面

    我正在开发一个单页 Web 应用程序 它具有许多不同的功能和形式 当开发一个深度 我的意思是主页上没有的 功能时 我会经历这个循环 开发代码 编辑类和函数 刷新整个页面 一路点击 直到到达我需要测试的部分 有时加起来大约一分钟 测试新代码
  • Web 应用程序使用 API 来完成一切?

    我即将开始为我的公司规划一个内部项目管理工具 API 一直让我疑惑 首先创建 API 并使用这些 API 调用构建实际站点而不是实施两次 是否会被视为不好的做法 效率太低 让我知道你的想法 我完全同意开发 API 将为您提供解耦的架构 并且
  • Python 读取未格式化的直接访问 Fortran 90 给出不正确的输出

    这是数据的写入方式 它是一个二维浮点矩阵 我不确定大小 open unit 51 file rmsd nn output form unformatted access direct status replace recl Npoints
  • PHP 中 file、file_get_contents 和 fopen 之间的区别

    我是 PHP 新手 我不太确定 两者之间有什么区别file file get contents and fopen 函数 什么时候应该使用其中一个而不是另一个 前两个 file http www php net manual en func
  • VBA - 如何从网站下载.xls并将数据放入Excel文件

    我设法使用 VBA 达到准备从网络下载 Excel 文件的程度 但我无法弄清楚如何实际下载该文件并将其内容放入我正在使用的 Excel 文件中 有什么建议么 谢谢 这是到目前为止的代码 Sub GetData Dim IE As Inter
  • 根据哈希值确认文件内容

    我需要 检查完整性 content文件数量 文件将写入 CD DVD 可能会被复制多次 这个想法是识别正确复制的副本 在从 Nero 等中删除它们之后 我对此很陌生 但快速搜索表明Arrays hashCode byte http down
  • 找不到模块:错误:包路径。未从包中导出

    import firebase from firebase const firebaseConfig apiKey AIzaSyBOK7x5N5UnjY4TDqndzH7l5tvdNIsWFRc authDomain todo app e3
  • BIT(1) 的存储大小是多少?

    我一直认为a的存储大小BIT 1 列为 1 位 But http dev mysql com doc refman 5 6 en storage requirements html http dev mysql com doc refman
  • 通过套接字发送包含文件的字典(python)

    是否可以通过套接字发送包含文件 图像或文档 作为值的字典 我尝试了类似下面的东西 但失败了 with open cat jpeg rb as f myFile f read 2048 data id 1283 filename cat jp
  • 如何为 GlassFish Web 应用程序提供对外部资源(文件)的访问?

    我是一个有点玻璃鱼 http en wikipedia org wiki GlassFish初学者 所以请原谅我对这个问题的无知 基本上 我们正在为一个游戏网站提供服务 为了使我们的网络应用程序可以下载客户端 我们将其复制到domain1中
  • Flutter - 使用 Android 下载指示器下载文件

    我正在尝试下载邮件系统的附件 为此 我正在使用颤振下载器 https pub dartlang org packages flutter downloader但我需要通过我的 http 客户端传递我的令牌 我认为这个插件没有处理这个问题 我
  • j2me中读取文件内容

    我有一个如下所示的文件 OrderNo id name count Format 1 AA1 sdflsdfsdfd 12 01 2 AB2 asdaewqrftr 13 02 3 AA3 aerefytrsu 12 01 我想读取这个文件
  • Laravel htmlspecialchars() 期望参数 1 是我的项目中给出的字符串、对象?

    所以我正在尝试编写一个简单的网站表单 但它有这个 htmlspecialchars 错误 我尝试制作 message 但没有成功 有同样的错误 这是我的控制器
  • 文件写入器覆盖文件而不是附加到末尾时出现问题

    好的 我在将多行写入文本文件时遇到一些问题 程序运行 但不会每次都使用新行 当我希望它运行 4 次时 文本文件应如下所示 a b c d 相反 它看起来像 d 谁知道如何解决这个问题 所有导入均正确导入 来源 已稍加编辑 假设一切都已正确定
  • Java 扫描仪问题 (JFrame)

    我正在尝试使用扫描仪来编辑塔防游戏的级别 但是 它不会将级别 图块图像 更新为自定义文件的级别 0 是草 1 是石头 1 是什么都没有 等等 我发现了错误 但如何修复它 我需要添加 更改什么才能消除这个错误 java lang NullPo
  • 如何通过双击图标来执行JAVA程序?

    我写了一个java程序 现在我想在没有 IDE Eclipse 等的情况下打开我的控制台 java 应用程序 只需双击桌面上的可执行版本即可 我已将 java 项目导出为 Runnable JAR 文件 但无法打开 当我尝试使用cmd打开应
  • f.read 为空

    我在解释器中完成这一切 loc1 council council1 file1 open loc1 r 此时我可以执行 file1 read 并将文件的内容作为字符串打印到标准输出 但如果我添加这个 string1 file1 read 字
  • Zend_Cache_Backend_Sqlite 与 Zend_Cache_Backend_File

    目前我正在使用 Zend Cache Backend File 来缓存我的项目 尤其是来自外部 Web 服务的响应 我在想是否能找到将结构迁移到 Zend Cache Backend Sqlite 的一些好处 可能的优点是 文件系统有序 缓
  • S3 的 Rails 回形针默认图像

    我尝试在应用程序中使用default url 但我使用S3 存储图像 我不确定我需要在那里输入什么 URL 或者我是否必须创建一个假图像才能将所有内容放在那里 由于我的图像总是通过 S3 渲染 所以我不知道如果我只是在公共文件夹中放入一些默
  • 如何获取 tokio-io 的 async_read 文件句柄

    我想从文件句柄中流式传输行 但我不知道如何满足File has async read use std fs File use std io BufReader BufRead use tokio core reactor Handle us

随机推荐

  • Polymer HTML 导入已弃用

    所以我刚刚开始使用聚合物并收到以下消息 Deprecation Styling master document from stylesheets defined in HTML Imports is deprecated and is pl
  • (MongoDB) 在同一管道中结合并集和交集

    我在最新版本的 mongoDB 和 pymongo 中运行以下聚合管道 project union setUnion query a query b unwind union group id union ID date a addToSe
  • 如何在 Google 表格中创建“反向数据透视表”?

    我正在尝试生成一个 反向枢轴 功能 我一直在努力寻找这样的功能 但找不到已经存在的功能 我有一个汇总表 其中最多有 20 列和数百行 但是我想将其转换为平面列表 以便我可以导入到数据库 甚至使用平面数据来创建更多数据透视表 所以 我有这种格
  • 单独的环境配置elastic beanstalk

    我正在弹性豆茎中创建一个具有网络层和工作层的 Rails 应用程序 使用 ebextensions 内的 ELB 设置启动 Web 环境是正常的 但我无法启动工作环境 因为它没有 ELB 有没有办法为每个环境分离 ebextensions
  • C# 将字符串转换为双精度/十进制并返回字符串,保留尾随零,为千位添加逗号

    我试图获取用户输入 解析它 然后使用 String Format 显示 用逗号格式化数千个 So if user provides 1000 I will display 1 000 1000 00 gt 1 000 00 1000 0 g
  • 设置稀疏矩阵多个值的快速方法

    我在 MATLAB 中有一个稀疏的 5018x5018 矩阵 其中大约有 100k 个值设置为 1 即大约 99 6 为空 我正在尝试将大约 5 的 0 翻转为 1 即大约 125 万个条目 我想要翻转的矩阵中有 x 和 y 索引 这是我所
  • 仅服务器端插件

    我有一个不想让客户端看到的插件 不幸的是 它总是为服务器和客户端构建的 如何防止这种情况发生
  • 标记问题中的 AppSettings

    我试图将其放入我的标记中 但由于某种原因 这不被接受 我在这里做错了什么 要求是我不使用辅助方法 但在标记中使用表达式构建器 根据文档 http msdn microsoft com en us library d5bd1tad aspx
  • 当 MethodHandle 更快时,为什么要使用反射来访问类成员?

    随着 Java 7 的发布 MethodHandle https docs oracle com javase 8 docs api java lang invoke MethodHandle html 它允许用户像使用其底层字节码一样调用
  • 如何使用数据列表使用 FIND_IN_SET

    我用过FIND IN SET之前曾多次发生过 但这次的情况有点不同 早些时候我在表中搜索单个值 例如 SELECT FROM tbl name where find in set 1212121212 sku 但现在我有我想要在表中搜索的
  • 用 C 加密纯文本文件

    我目前正在用 C 语言编写一个从配置文件读取的 Linux 应用程序 该配置文件包含一些我想要加密的数据 因此它不是纯文本 我花了几个小时研究这个问题 但还没有找到可行的解决方案 由于应用程序需要从配置中读取 我需要能够动态对其进行加密和解
  • Doctrine2 同一实体上的两个存储库

    我不知道如何清楚地解释我的问题 但我会尝试 我有一个包含两个模块的项目 Admin User 我还有两个教义实体给我带来了一些麻烦 Shop Products 我的问题是这些实体必须由管理员和用户模块使用 但原则是 一个实体 一个存储库 据
  • 在我的例子中,如何本地化一个简单的 HTML 网站页面?

    I am NOT开发任何包含以下内容的 Web 服务应用程序client侧面和后端server端 如 Java EE 应用程序或 Ruby on Rails 相反 我只是开发一个 HTML网站页面 在此页面上 有两个国旗图像 美国和中国 用
  • 无法根据 WSO2 API Manager 中的消息中介策略调用动态端点/URL

    我正在使用 APIM 3 1 0 我需要根据标头或请求参数重定向 API 我尝试过请求参数但无法调用不同的API 我已使用以下自定义中介策略并将其添加到测试 API 但无法调用不同的 URL 每次调用 API 时 即使我将操作值作为菜单传递
  • Fancybox 在 IE 中加载 iframe 时卡住

    我在使用 fancybox 的 IE 中的 iframe 中加载 PDF 时遇到问题 当我点击链接时 我会得到 gif 加载程序 并且它会永远旋转 控制台或页面或类似内容中没有错误 所有版本的 IE 都会出现此问题 所有其他浏览器都工作正常
  • 保持用户界面最新的最佳方法是什么?

    这个问题是我的问题的改进观察数据变化的不同方式 https stackoverflow com questions 3161392 different ways of observing data changes 我的 C 应用程序中仍然有
  • 如何隐藏ng网格中的列

    这是我的代码 索引 html
  • 配置 WiX 自动设置产品版本属性?

    目前 每当我构建包时 我都必须手动增加 P roduct wxs 文件中的 Version 属性 如下所示
  • 如何找到 JavaScript 数组中包含的最大数字?

    我有一个简单的 JavaScript 数组对象 其中包含一些数字 267 306 108 有没有一个函数可以找到这个数组中最大的数字 辞职来救援 http ejohn org blog fast javascript maxmin Arra
  • 在网站中存储用户上传的文件的最佳方式是什么?

    我正在尝试创建一个网站 需要在其中存储一些用户上传的文件 如一些个人资料图片 一些 xml 文件等 那么存储这些文件的最佳方式是什么 目前 我正在服务器上为每个注册的新用户创建一个新目录 并将每个用户的文件存储在各自的目录中 但有人告诉我这