ownCloud共享文件与短期令牌或类似?

时间:2014-06-12 09:03:32

标签: php web-services rest access-token owncloud

我正在从ownCloud服务器共享文件,然后我在外部Drupal站点中嵌入链接(这需要用户在能够访问之前登录)。

到目前为止,我使用ownCloud REST“share api”对ownCloud服务器进行身份验证并返回指向文件的链接,但此链接是永久性的,将来无需身份验证即可重复使用。因此,如果用户要复制URL链接,即使他们在外部网站上的凭据被撤销,他们也可以保持对文件的访问权。

因为这些链接嵌入在经过身份验证的页面中,所以我希望避免用户再次登录到ownCloud来下载文件,所以我想使用短期令牌或类似的东西来保护它们(我想象的那种工作流程:用户登录到外部Drupal站点,站点服务器使用ownCloud服务器进行身份验证,接收令牌并附加令牌以下载链接。)

到目前为止,我已经搜索了官方论坛,发布在专家交流,阅读文档,并广泛搜索。在我看来,这个功能不存在,但似乎应该如此。所以如果有人知道,怎么做呢?也可以提供可以提供类似结果的替代解决方案!

3 个答案:

答案 0 :(得分:1)

如果您检查OC Share API documentation,您可以看到存在参数“password”以向该链接添加密码:

  

创建新的共享
  与用户/组或公共链接共享文件/文件夹。

     
      
  • 语法:/ shares
  •   
  • 方法:POST
  •   
  • POST参数:path - (字符串)应共享的文件/文件夹的路径
  •   
  • POST参数:shareType - (int)'0'= user; '1'=组; '3'=公共链接
  •   
  • POST参数:shareWith - (字符串)用于共享文件的用户/组ID
  •   
  • POST参数:publicUpload - (boolean)允许公共上传到公共共享文件夹(true / false)
  •   
  • POST参数:密码 - (字符串)密码以保护公共链接与分享
  •   
  • POST参数:权限 - (int)1 =读取; 2 =更新; 4 =创造; 8 =删除; 16 =分享; 31 =全部(默认值:31,公共股份:1)
  •   
  • 必填字段:shareType 0或1的shareType,path和shareWith。
  •   
  • 结果:包含新创建的共享的共享ID(int)的XML
  •   

另一种解决方案是存储您的共享文件并在需要时撤消它们:

  

删除分享

     

删除给定的分享。

     
      
  • 语法:/ shares /
  •   
  • 方法:DELETE
  •   
  • 参数:share_id - (int)共享ID
  •   

您可以在以下网址查看更多信息:http://doc.owncloud.org/server/6.0/developer_manual/core/ocs-share-api.html

答案 1 :(得分:0)

在Web界面中,可以创建具有到期日期的共享。不确定为什么共享API还没有提供对此的访问权限(至少according to the docs)。但是已经在ownCloud的问题跟踪器中有an issue for it,这表明这可能在OC7中实现(应尽快发布)。

只是一句话:你的实际上更多的是一个功能请求而不是一个问题,实际上并不是真正与编程有关的问题。如果您决定使用ownCloud并且需要更具体的内容,那么您可能最好为其发布功能请求on the ownCloud issue tracker ...

答案 2 :(得分:0)

ownCloud 7.0, you can "update" a share to have an expiration date开始:

  

更新分享

     

更新给定的分享。每个请求只能更新一个值。

     
      
  • 语法:/ shares /
  •   
  • 方法:PUT
  •   
  • 参数:share_id - (int)共享ID
  •   
  • PUT参数:permissions - (int)更新权限(请参阅上面的“创建共享”)
  •   
  • PUT参数:密码 - (字符串)公共链接分享的更新密码
  •   
  • PUT参数:publicUpload - (boolean)enable(true)/ disable(false)公共共享的公共上传。
  •   
  • PUT参数: expireDate - (字符串)设置公共链接共享的过期日期。该参数期望格式良好的日期字符串,例如   “YYYY-MM-DD”
  •