Ruby on rails 3 如何编写RESTful文件管理器?

Ruby on rails 3 如何编写RESTful文件管理器?,ruby-on-rails-3,file-management,Ruby On Rails 3,File Management,今天我有一个直接的问题:p我只是需要一些想法。。。 如何在rails中编写RESTful文件管理器 我想使用一个文件控制器,它对文件执行所有操作。 现在,当我使用restful时,只有一些函数: 创建(创建文件/目录) 销毁(删除文件/目录) 索引(列出目录) 显示(显示文件的属性) 编辑(重命名文件/目录) 现在我不知道如何复制/移动文件。。。 当我想让一个用户拥有多个filemanager实例时,我该如何管理他可以位于不同的目录中?(在一个会话中具有不同的my filemanager实例

今天我有一个直接的问题:p我只是需要一些想法。。。 如何在rails中编写RESTful文件管理器

我想使用一个文件控制器,它对文件执行所有操作。 现在,当我使用restful时,只有一些函数:

  • 创建(创建文件/目录)
  • 销毁(删除文件/目录)
  • 索引(列出目录)
  • 显示(显示文件的属性)
  • 编辑(重命名文件/目录)
现在我不知道如何复制/移动文件。。。 当我想让一个用户拥有多个filemanager实例时,我该如何管理他可以位于不同的目录中?(在一个会话中具有不同的my filemanager实例)


谁能给我一些提示吗P

您可以将文件定义为rails路由中的资源。然后你就有了休息的路线。对于rails来说,如果您有一个文件或数据库资源,这并不重要。RESTful路线是相同的。文件的唯一标识符可以是唯一文件名:“/files/file.pdf”

我建议您使用一个抽象来执行文件系统上的操作(如用于数据库访问的对象关系映射)。我可以想到一个例子。它处理文件上传并提供诸如删除/销毁之类的基本操作。它还允许您更改存储卷(文件、gridfx、AmazonS3)

我不知道您对不同的filemanager实例是什么意思。可以为每个用户定义一个文件管理器。例如,您可以使用定义自定义存储目录:

# 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
#在用户类中装载上载程序
类用户
mount_uploader:file,UserUploader
结束
#定义用户上传器
类UserUploader

我希望你有个主意

你的意思是我应该使用文件作为资源?还是文件作为资源?:P当我将其用作资源时,我可以使用index函数获取具有index;)的目录的内容对于不同的实例,我的意思是,当我只使用文件作为资源时,我必须将当前目录保存在会话变量中。这将使在一个会话中使用不同的管理器实例变得更加困难。。。感谢您提供有关自定义存储目录的提示;)我的意思是“文件作为资源”只是在rails路由中。文件基本上只是一种资源。你能举例说明不同的情况吗?您是否正在尝试构建类似FTP客户端的东西?