您可以将文件定义为 Rails 路由中的资源。然后你就有了你的 RESTful 路由。如果您有文件或数据库资源,则 Rails 并不重要。RESTful 路由是相同的。您文件的唯一标识符可以是唯一文件名:“/files/file.pdf”。
我建议您使用抽象来对文件系统执行操作(例如用于数据库访问的对象关系映射)。例如,我可以想到载波。它处理文件上传并提供删除/销毁等基本操作。它还允许您更改存储量(文件、gridfx、amazon s3)。
我不确定您对文件管理器的不同实例的含义。可以为每个用户定义一个文件管理器。例如,使用carrierwave,您可以定义自定义存储目录:
# mount uploader in user class
class User
mount_uploader :file, UserUploader
end
# define user uploader
class UserUploader < CarrierWave::Uploader::Base
def store_dir
# model = user object as the uploader
# is mounted in the user class
'public/uploads/#{model.id}'
end
end
我希望你有一个想法!