我想知道为每个用户创建一个文件夹是不是一个坏主意。因此,可以使用img.mysite.com/UserId/image.jpg访问每个用户的任何图像
答案 0 :(得分:5)
根据我的经验,我会说完绝的坏主意 最近,我正在开发一个基于社交网络的应用程序 它现在拥有大约15000多名用户。
我目前正在管理该网站。
问题在于,你会发现它最初很难管理,但后来会出现问题 始终必须跟踪权限 创建和删除与数据库相关的文件夹以实现同步 此外,如果您在共享主机,许多主机提供商,他们不会显示任何文件管理器的所有文件夹。通过文件管理器可以看到的文件夹的最大数量是2000与客户关怀支持您只能访问第一个10000文件夹。 文件夹的非Ascii名称也将是另一个问题。
以后这对你来说将是一个很大的问题。
我建议不要这样做。
答案 1 :(得分:4)
这可能会成为大量目录,因此请谨慎some filesystems限制单个目录中的子目录数。将生成的内容分解为多个目录是很常见的。您可以按日期执行此操作,或者分解一些标识符(哈希值或图像的自动增量ID号)以创建更深层的目录结构。例如:
AKA目录前缀为floor(ID / 1000)
。
可能有一种情况是从文件系统中抽象出你的URI,所以除了作为程序员之外,文件存储在后端的位置并不重要。
答案 2 :(得分:1)
不,这不是最好的主意。
如果单独文件夹的唯一目的是使您可以在您建议的结构中使用“友好”网址,那么我建议您搜索网址重写。
如果您正在尝试解决其他问题,请发表评论并告知我们。
答案 3 :(得分:1)
没有理由因为性能原因而成为问题。从组织的角度来看,它比将它们全部放在同一个文件夹中更清晰。
答案 4 :(得分:0)
我认为这将是更好的格式:
http://img.mysite.com/userid_imageid.jpg
然后你可以这样做数据库:
表users
和imgs
答案 5 :(得分:0)
在您的ftp上使用一个文件夹,并建立一个良好而稳定的数据库,将同一个人的所有照片链接在一起。不是那么难:)
答案 6 :(得分:0)
对于较小的网站,这不是一个可怕的想法,但有一点需要注意:
你必须将文件创建/删除处理抽象为一种机制!
确保您的所有代码都使用此机制,该机制应该能够存储,检索和删除,就是这样。然后,在将来,如果您想要更改存储文件的方式,可以非常轻松地完成。
P.S。当我说出你的所有代码时,我的意思是所有你的代码。例如,我有任何匹配的GET
^img.mysite.com/(\w+)/(\w+\.jpg)$
由单个方法处理,该方法调用我上面描述的机制。