如何管理用户上传的文件?

时间:2016-05-20 00:56:56

标签: ruby-on-rails linux file nginx

我有一个使用nginx的网络应用。假设它在Rails中,但它并不重要。

我计划每天为用户上传大约一百张图片/文件。我不想使用任何自定义解决方案来讲故事和上传图像,而是我想自己管理它。

1)是否存在我应存储这些图像的惯用场所/路径?或者nginx范围内的任何路径都可以使用吗?

2)它应该是一个单独的文件夹,而不是我用于为CSS编辑图像的文件夹吗?

3)我如何整理文件夹林?也就是说,它应该是/my_base_image_folder/{year}/{month}/{day}/{image_sequence_number}.jpg吗?

或者/my_base_image_folder/{article_id}/{image_sequence_number}.jpg?或者我应该把它们放在同一个文件夹`/my_base_image_folder/{img_guid}.jpg?

为什么?

4)命名上传文件的推荐解决方案是什么? GUID?还是序列号?

1 个答案:

答案 0 :(得分:0)

这完全取决于您再次使用这些图像的用例。如果您计划在以后的会话中检索用户为这些用户上传的图片,即,如果您的用户必须在您的应用中浏览他们的图片,最好将其存储在{{1 }}。如果您计划根据上传的时间或日期检索图片,那么如果您选择a_public_folder/user_id_hashed/,情况会更好。确保您的ngnix可以使用不太开放的权限访问公用文件夹,只是为了安全起见。此外,命名图像文件,时间戳和小随机十六进制的组合应该是我猜,没什么大不了的。