【问题标题】:How can I script file upload to an owncloud shared link folder?如何将文件上传到 owncloud 共享链接文件夹?
【发布时间】:2017-03-25 13:52:01
【问题描述】:

如果我使用(临时)链接共享对文件夹的访问权限,任何知道该链接和密码的人都可以使用网络界面将文件上传到该文件夹​​。

如何编写脚本上传到通过链接共享的 owncloud 文件夹?

对于有权访问 webdav 界面的服务器普通用户,问题在Uploading files to an owncloud server programatically 中得到解答。

我的实际用例是从 jenkins 作业上传构建工件。出于安全原因,我不想使用自己的用户帐户,我们的 IT 也不愿意创建伪用户。

【问题讨论】:

    标签: curl jenkins webdav owncloud


    【解决方案1】:
    curl -u token:password -T filename "https://your.owncloud.server/public.php/webdav/filename"
    

    token 是共享链接末尾的字符串(例如 https://your.owncloud.server/index.php/s/abcdefghijk0123 中的 abcdefghijk0123)。如果您不使用密码来保护链接,您可以将命令中的字段留空。

    【讨论】:

    • 它对我不起作用。知道我做错了什么吗?我以https://www.vpext.dsa-ac.de/dsacloud/index.php/s/rRLXrewsDIq4aRz 分享了一个链接,但通过curl -u rRLXrewsDIq4aRz:pwd -T DefaultCatalog.xml "https://www.vpext.dsa-ac.de/dsacloud/public.php/webdav/DefaultCatalog.xml" 上传会返回NotAuthenticated 异常。
    • 此时您的共享链接是否可以通过浏览器访问?也许您可以尝试不使用密码进行测试。
    • 我让它为目录名称工作,即不是共享 URL 令牌,请参阅 stackoverflow.com/a/37921752/1184842
    【解决方案2】:

    您可以尝试在https://your-owncloud-server/settings/personal#apppasswords 上创建应用密码,这样您就不需要其他用户帐户了。

    编辑:仅适用于 Nextcloud

    【讨论】:

    • 我在设置页面上没有看到这样的选项。我确实看到了personal#clientsboxpersonal#passwordformpersona#ssl-root-certificates
    【解决方案3】:

    如果有人仍在寻找这个问题的答案(这对我来说是谷歌的第一个结果),OwnCloud 管理手册中有一个解决方案。

    如果你没有像密码保护的文件放置链接

    https://example.com/s/70mX9s7KOZwfmdi
    

    (token 70mX9s7KOZwfmdi) 您可以使用以下 cURL 命令从命令行上传文件 file.txt

    curl -k -T file.txt -u "70mX9s7KOZwfmdi:" -H 'X-Requested-With: XMLHttpRequest' \https://example.com/public.php/webdav/file.txt
    

    来源:https://doc.owncloud.com/server/next/user_manual/files/access_webdav.html#uploading-files-to-a-public-link-file-drop-using-curl

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-25
      • 2011-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多