如何使用easywebdav连接到拥有python的owncloud?
作者:互联网
我正在尝试使用python连接到owncloud实例.
我发现easywebdav应该可以通过webdav轻松连接,但在尝试连接时我得到“404 Not Found”
import easywebdav
webdav = easywebdav.connect('test.org/owncloud/remote.php/webdav/', username='user', password='pass', protocol='https', port=443, verify_ssl=False)
print webdav.ls(".")
我希望在我自己的云实例上找到一个文件列表,但我得到了
python ./test.py
Traceback (most recent call last):
File "./test.py", line 8, in <module>
print webdav.ls(".")
File "/usr/lib/python2.7/site-packages/easywebdav-1.0.7-py2.7.egg/easywebdav/client.py", line 131, in ls
response = self._send('PROPFIND', remote_path, (207, 301), headers=headers)
File "/usr/lib/python2.7/site-packages/easywebdav-1.0.7-py2.7.egg/easywebdav/client.py", line 81, in _send
raise OperationFailed(method, path, expected_code, response.status_code)
easywebdav.client.OperationFailed: Failed to list directory ".".
Operation : PROPFIND .
Expected code : 207 UNKNOWN, 301 Moved Permanently
Actual code : 404 Not Found
我觉得奇怪的是,如果我连接到无效路径,请使用
webdav = easywebdav.connect('test.org/owncloud-not-existent/', ......)
我明白了
Traceback (most recent call last):
File "./test.py", line 8, in <module>
print webdav.ls(".")
File "/usr/lib/python2.7/site-packages/easywebdav-1.0.7-py2.7.egg/easywebdav/client.py", line 131, in ls
response = self._send('PROPFIND', remote_path, (207, 301), headers=headers)
File "/usr/lib/python2.7/site-packages/easywebdav-1.0.7-py2.7.egg/easywebdav/client.py", line 81, in _send
raise OperationFailed(method, path, expected_code, response.status_code)
easywebdav.client.OperationFailed: Failed to list directory ".".
Operation : PROPFIND .
Expected code : 207 UNKNOWN, 301 Moved Permanently
Actual code : 405 Method Not Allowed
解决方法:
我已经使用个人WebDav服务器进行了测试,我发现了类似的问题,虽然我认为我的easywebdav版本不同,但我使用的是v1.0.7并且不允许使用参数verify_ssl,因此我使用“http”进行了测试.
无论如何,我必须重现你的问题,修复它更改连接URL并仅使用主机,将路径放在ls()命令中:
import easywebdav
webdav = easywebdav.connect('test.org', username='user', password='pass', protocol='https', port=443, verify_ssl=False)
print webdav.ls("/owncloud/remote.php/webdav")
标签:python,webdav,owncloud 来源: https://codeday.me/bug/20190629/1322507.html