3

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

到目前为止,我使用 ownCloud REST“共享 api”对 ownCloud 服务器进行身份验证并返回一个文件链接,但是这个链接是永久的,将来可以在没有身份验证的情况下重复使用。因此,如果用户要复制 URL 链接,即使他们在外部站点上的凭据被撤销,他们也可以保持对文件的访问。

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

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

4

3 回答 3

1

如果您查看OC Share API 文档,您可以看到存在一个参数“password”来为链接添加密码:

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

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

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

删除共享

删除给定的共享。

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

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

于 2014-07-22T21:09:38.993 回答
0

在 Web 界面中,可以创建具有到期日期的共享。不知道为什么共享 API 还没有提供对此的访问(至少根据文档)。但是ownCloud的问题跟踪器中已经存在一个问题,这表明这可能会在OC7中实现(应该很快就会发布)。

只是一个评论:你的实际上更像是一个功能请求而不是一个问题,实际上我会说实际上与编程无关。如果您决定使用 ownCloud 并且需要更具体的内容,则最好在 ownCloud 问题跟踪器上发布功能请求......

于 2014-07-21T09:51:05.583 回答
0

ownCloud 7.0 开始,您可以“更新”共享以设置过期日期

更新分享

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

  • 语法:/shares/
  • 方法:放
  • 参数:share_id - (int) 共享 ID
  • PUT 参数:权限 - (int) 更新权限(参见上面的“创建共享”)
  • PUT 参数:密码 - (字符串)公共链接的更新密码
  • PUT 参数: publicUpload -(布尔)启用(真)/禁用(假)公共共享的公共上传。
  • PUT 参数:expireDate -(字符串)设置公共链接共享的过期日期。此参数需要格式正确的日期字符串,例如 'YYYY-MM-DD'</li>
于 2015-12-04T17:45:16.490 回答