如何在网络服务器上存储和组织上传的图片?

How to store and organize uploaded images on webserver?

我正在编写一个允许用户上传图片的服务器。似乎大多数人倾向于将这些文件直接存储在文件系统上。

我的问题是,这是否真的是这样做的方式。我不熟悉服务器的容量,但我很好奇的是例如如何确保服务器不会 运行 超出(硬盘)内存?

我还想知道如何为许多不同的用户组织这些文件。仅通过在数据库中使用用户 ID 来像 war/images/<user-database-id>/<uuid-for-image>.(jpeg|png) 一样存储它就足够了吗?还是在存储图像时需要考虑更多的事情?

我认为最好的选择是使用云存储系统,例如 Amazon S3、Google Cloud Storage、Rackspace 或 MS Azure。

使用您建议的路径应该是可行的,但如果该数据库已经为您提供了该用户拥有的对象列表,您也可以省略 user-database-id