ruby-on-rails - 如何管理用户上传的文件?

标签 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) 推荐的上传文件命名方案是什么?图形标识符?还是序号?

最佳答案

这完全取决于您再次使用这些图像的用例。如果您计划在以后的 session 中为这些用户检索用户上传的图像,即,如果您的用户必须在您的应用程序中浏览他们的图像,最好将其存储在 a_public_folder/user_id_hashed/。如果您打算根据上传的时间或日期检索图像,最好使用 a_public_folder/year/month/day/..。为了安全起见,请确保您的 ngnix 可以使用不太开放的权限访问公用文件夹。另外,命名图像文件,我猜应该是时间戳和一个小的随机十六进制的组合,没什么大不了的。

关于ruby-on-rails - 如何管理用户上传的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37336315/

相关文章:

linux - Overlayfs : 'Special device overlay doesn' t exist'

c++ - 全局静态对象销毁后,是否有可能调用OS计时器回调?

file - Erlang:如何获取当前文件光标位置

c++ - 在 Visual Studio 2010 和 Windows 中使用文件描述符

ruby-on-rails - 使用 aws-sdk gem 删除 Amazon S3 上的 "Folder"

ruby-on-rails - 电子邮件中的 Sendgrid 链接产生您的连接不是浏览器中的私有(private)错误

在读取模式下使用 fopen 检查文件是否存在不会给出 .或/文件名

java - 无法使用 JAVA 中的网络将文件从一台电脑传输到另一台电脑

ruby-on-rails - 为什么我想要恢复迁移?

ruby-on-rails - 删除当前迁移文件后如何修复数据库?