rack_dav, 用于 rack的web dav处理程序

分享于 

4分钟阅读

GitHub

  繁體 雙語
WEBDAV Handler for Rack
  • 源代码名称:rack_dav
  • 源代码网址:http://www.github.com/georgi/rack_dav
  • rack_dav源代码文档
  • rack_dav源代码下载
  • Git URL:
    git://www.github.com/georgi/rack_dav.git
    Git Clone代码到本地:
    git clone http://www.github.com/georgi/rack_dav
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/georgi/rack_dav
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    

    RackDAV - rack的网络创作

    RackDAV是 rack的处理程序,它允许内容作者通过 HTTP。 RackDAV带来了自己的文件后端,但是可以通过子类化 RackDAV::Resource 来实现其他后端。

    安装

    只需从RubyGems安装 gem:

    
    $ gem install rack_dav
    
    
    
    

    快速入门

    如果你只想通过 web dav共享一个文件夹,你只需启动一个简单的服务器即可:

     
    $ rack_dav
    
    
    
     

    这将在端口 3000上启动一个WEBrick服务器,你可以在不进行身份验证的情况下连接它。

    rack-处理程序

    使用 RackDAV inside,rack 应用程序非常简单。 简单的rackup脚本如下所示:

    
    require 'rubygems'
    
    
    require 'rack_dav'
    
    
    
    use Rack::CommonLogger
    
    
    
    run RackDAV::Handler.new(:root => '/path/to/docs')
    
    
    
    

    实现你自己的web dav资源

    RackDAV::Resource 是一个抽象基类,定义了用于访问资源的接口。

    每个资源都将用路径初始化,该路径应用于查找实际资源。

    需要使用实际的资源类初始化 RackDAV::Handler:

    
    RackDAV::Handler.new(:resource_class => MyResource)
    
    
    
    

    RackDAV需要有关资源的一些信息,因此你必须实现以下方法:

    • : 如果这是一个集合,则返回子资源。

    • 集合: 这里资源是集合?

    • 存在: 这里recource是否存在?

    • creation_date: 返回创建时间。

    • last_modified: 返回上次修改的时间。

    • last_modified= ( 时间): 设置上次修改的时间。

    • Etag: 返回一个 Etag,这个资源的唯一哈希值。

    • content_type: 返回这里资源的mime类型。

    • content_length: 以字节为单位返回这里资源的大小。

    最重要的是必须实现操作,这些操作被调用来检索和更改资源:

    • get: 将资源的内容写到 response.body. 中

    • 放置( 请求,响应): 保存目录内容

    • 邮寄的费用:通常禁止。

    • 删除: 删除这里资源。

    • copy(dest): 将这里资源复制到给定的目标资源。

    • move(dest): 将这里资源移动到给定的目标资源。

    • make_collection: 创建这里资源作为集合。

    • set_custom_property ( 名称,值): 在资源上设置自定义属性。 如果值为零,则删除自定义属性。

    • get_custom_property(name): 返回已经命名自定义属性的值。

    • 锁定(。locktoken,超时,lockscope=nil,locktype=nil,owner=nil ): 锁定这里资源。如果范围。类型和所有者为零,请刷新给定的锁。

    • unlock(token): 解锁这里资源

    注意,通常情况下,资源对象是为还没有存在的资源实例化的。

    为了获得灵感,你应该看看FileResource实现。 如果你要实现一种新的资源,请让我现在来。

    上的 RackDAV

    下载或者在它的 Github页面上打开项目。


    WEB  RACK  Webdav  
    相关文章