将每个上传的文件存储在单独的文件夹中?

将每个上传的文件存储在单独的文件夹中?

我想在我的网络应用中以这样的方式上传文件:默认情况下只有所有者才能看到 URL,并且不可能在知道其名称/上传日期/哈希值等的情况下下载外来文件。但当用户上传文件时保留原始文件名也很重要。

现在我有一个想法,将每个文件存储在具有随机名称的单独目录中:

/media/upload_year/upload_month/upload_day/random-uuid/filename.ext

例如:

/media/2016/11/18/a1b24567184c/filename.ext

它看起来非常简单和安全,因为实际上不可能找到随机 uuid,但我担心性能和文件系统限制。我在 rota 服务器驱动器上有 ext4 文件系统。那么问题是 - 将每个文件存储在单独的目录中可以吗?使用这种方法可以存储 1000 - 2000 个文件而不会出现性能问题吗?

答案1

用另一种方法解决了主要任务 - 将随机 uuid 添加到文件名(例如/media/2016/11/18/a1b24567184c-filename.ext)并在使用标头在 nginx 中提供文件时剪切它Content-Disposition。因此主要问题仍然值得怀疑

相关内容