У меня есть файл уценки на сервере NextCloud 15 в MyDirectory/
.
До сих пор я был в состоянии перечислить MyDirectory/
содержимое, несмотря на то, что документация не очень соответствует тому, чтона самом деле работает.
Например, я использую https://cloud.example.com/remote.php/webdav/folder
вместо https://cloud.example.com/remote.php/dav/files/username/folder
, как сказано в документе. Мой (рабочий) код:
import requests
import xmltodict
webdav_options = """<?xml version="1.0" encoding="UTF-8"?>
<d:propfind xmlns:d="DAV:">
<d:prop xmlns:oc="http://owncloud.org/ns">
<d:getlastmodified/>
<d:getcontenttype/>
<oc:fileid/>
</d:prop>
</d:propfind>"""
r = requests.request('PROPFIND', 'https://my-domain.com/nextcloud/remote.php/webdav/MyDirectory',
auth=('username', 'password'),
data=webdav_options
)
xml_dict = xmltodict.parse(r.text, dict_constructor=dict)
for response in xml_dict['d:multistatus']['d:response']:
filename = unquote(response['d:href']).replace(
'/nextcloud/remote.php/webdav/', '')
print(filename) # Working great
Теперь я хочу скачать файлы. В соответствии с документацией , найденной здесь не работает ... Попытка этого только загружает HTML-страницу:
url = f'https://my-domain.com/nextcloud/remote.php/webdav/MyDirectory/{filename}'
my_file = requests.get(url, auth=(usernanme, password))
print(my_file.content) # html content
Есть идеи, как поступить?