<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Home</title><link>https://sourceforge.net/p/webdavlcient/wiki/Home/</link><description>Recent changes to Home</description><atom:link href="https://sourceforge.net/p/webdavlcient/wiki/Home/feed" rel="self"/><language>en</language><lastBuildDate>Sun, 26 Oct 2014 08:27:19 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/webdavlcient/wiki/Home/feed" rel="self" type="application/rss+xml"/><item><title>Discussion for Home page</title><link>https://sourceforge.net/p/webdavlcient/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;h1 id="webdavclient"&gt;Webdavclient&lt;/h1&gt;
&lt;p&gt;&lt;a class="" href="http://badge.fury.io/py/webdavclient" rel="nofollow"&gt;&lt;img alt="PyPI version" src="https://badge.fury.io/py/webdavclient.svg" rel="nofollow" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a class="" href="https://travis-ci.org/designerror/webdavclient" rel="nofollow"&gt;&lt;img alt="Build Status" src="https://travis-ci.org/designerror/webdavclient.svg?branch=master" rel="nofollow" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Пакет Webdavclient обеспечивает легкую и удобную работу с WebDAV-серверами (Яндекс.Диск, Dropbox, Google Диск, Box и 4shared).&lt;br /&gt;
В данный пакет включены следующие компоненты: webdav API, resource API и wdc.&lt;/p&gt;
&lt;p&gt;Исходники на &lt;a href="https://github.com/designerror/webdavclient" rel="nofollow"&gt;https://github.com/designerror/webdavclient&lt;/a&gt;&lt;/p&gt;
&lt;h1 id="_1"&gt;Установка&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="" href="https://pypi.python.org/pypi/pip" rel="nofollow"&gt;pip&lt;/a&gt; install &lt;a class="" href="https://pypi.python.org/pypi/webdavclient" rel="nofollow"&gt;webdavclient&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="" href="https://pypi.python.org/pypi/setuptools" rel="nofollow"&gt;easy_install&lt;/a&gt; &lt;a class="" href="https://pypi.python.org/pypi/webdavclient" rel="nofollow"&gt;webdavclient&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="webdav-api"&gt;Webdav API&lt;/h1&gt;
&lt;p&gt;Webdav API - представляет из себя набор webdav-методов работы с облачными хранилищами. В этот набор входят следующие методы: check, free, info, list, mkdir, clean, copy, move, download, upload, publish и unpublish.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align="left"&gt;Сервисы&lt;/th&gt;
&lt;th align="center"&gt;free&lt;/th&gt;
&lt;th align="center"&gt;info&lt;/th&gt;
&lt;th align="center"&gt;list&lt;/th&gt;
&lt;th align="center"&gt;mkdir&lt;/th&gt;
&lt;th align="center"&gt;clean&lt;/th&gt;
&lt;th align="center"&gt;copy&lt;/th&gt;
&lt;th align="center"&gt;move&lt;/th&gt;
&lt;th align="center"&gt;download&lt;/th&gt;
&lt;th align="center"&gt;upload&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td align="left"&gt;Яндекс.Диск&lt;/td&gt;
&lt;td align="center"&gt;+&lt;/td&gt;
&lt;td align="center"&gt;+&lt;/td&gt;
&lt;td align="center"&gt;+&lt;/td&gt;
&lt;td align="center"&gt;+&lt;/td&gt;
&lt;td align="center"&gt;+&lt;/td&gt;
&lt;td align="center"&gt;+&lt;/td&gt;
&lt;td align="center"&gt;+&lt;/td&gt;
&lt;td align="center"&gt;+&lt;/td&gt;
&lt;td align="center"&gt;+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;Dropbox&lt;/td&gt;
&lt;td align="center"&gt;-&lt;/td&gt;
&lt;td align="center"&gt;+&lt;/td&gt;
&lt;td align="center"&gt;+&lt;/td&gt;
&lt;td align="center"&gt;+&lt;/td&gt;
&lt;td align="center"&gt;+&lt;/td&gt;
&lt;td align="center"&gt;+&lt;/td&gt;
&lt;td align="center"&gt;+&lt;/td&gt;
&lt;td align="center"&gt;+&lt;/td&gt;
&lt;td align="center"&gt;+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;Google Диск&lt;/td&gt;
&lt;td align="center"&gt;-&lt;/td&gt;
&lt;td align="center"&gt;+&lt;/td&gt;
&lt;td align="center"&gt;+&lt;/td&gt;
&lt;td align="center"&gt;+&lt;/td&gt;
&lt;td align="center"&gt;+&lt;/td&gt;
&lt;td align="center"&gt;-&lt;/td&gt;
&lt;td align="center"&gt;-&lt;/td&gt;
&lt;td align="center"&gt;+&lt;/td&gt;
&lt;td align="center"&gt;+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;Box&lt;/td&gt;
&lt;td align="center"&gt;+&lt;/td&gt;
&lt;td align="center"&gt;+&lt;/td&gt;
&lt;td align="center"&gt;+&lt;/td&gt;
&lt;td align="center"&gt;+&lt;/td&gt;
&lt;td align="center"&gt;+&lt;/td&gt;
&lt;td align="center"&gt;-&lt;/td&gt;
&lt;td align="center"&gt;-&lt;/td&gt;
&lt;td align="center"&gt;+&lt;/td&gt;
&lt;td align="center"&gt;+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="left"&gt;4shared&lt;/td&gt;
&lt;td align="center"&gt;-&lt;/td&gt;
&lt;td align="center"&gt;+&lt;/td&gt;
&lt;td align="center"&gt;+&lt;/td&gt;
&lt;td align="center"&gt;+&lt;/td&gt;
&lt;td align="center"&gt;-&lt;/td&gt;
&lt;td align="center"&gt;-&lt;/td&gt;
&lt;td align="center"&gt;+&lt;/td&gt;
&lt;td align="center"&gt;+&lt;/td&gt;
&lt;td align="center"&gt;+&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Методы publish и unpublish поддерживает только  Яндекс.Диск.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Настройка клиента&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Обязательными ключами для настройки соединения клиента с WevDAV-сервером являются webdav_hostname и webdav_login, webdav_password. &lt;br /&gt;
:::python&lt;/p&gt;
&lt;h1 id="import-webdavclient-as-wc"&gt;import webdav.client as wc&lt;/h1&gt;
&lt;h1 id="options"&gt;options = {&lt;/h1&gt;
&lt;h1 id="webdav_hostname-httpswebdavyandexru"&gt;'webdav_hostname': "https://webdav.yandex.ru",&lt;/h1&gt;
&lt;h1 id="webdav_login-login"&gt;'webdav_login': "login",&lt;/h1&gt;
&lt;h1 id="webdav_paassword-password"&gt;'webdav_paassword': "password"&lt;/h1&gt;
&lt;h1 id="_2"&gt;}&lt;/h1&gt;
&lt;h1 id="client-wcclientoptions"&gt;client = wc.Client(options)&lt;/h1&gt;
&lt;p&gt;При наличие прокси-сервера необходимо указать настройки для подключения через него.&lt;br /&gt;
:::python&lt;br /&gt;
import webdav.client as wc&lt;br /&gt;
options = {&lt;br /&gt;
    'webdav_hostname': "https://webdav.yandex.ru",&lt;br /&gt;
    'webdav_login': "w_login",&lt;br /&gt;
    'webdav_paassword': "w_password",&lt;br /&gt;
    'proxy_hostname': "http://127.0.0.1:8080",&lt;br /&gt;
    'proxy_login': "p_login",&lt;br /&gt;
    'proxy_password': "p_password"&lt;br /&gt;
}&lt;br /&gt;
client = wc.Client(options)&lt;/p&gt;
&lt;p&gt;При необходимости использования сертификата, путь к сертификату и приватному ключу задается следующим образом:&lt;br /&gt;
:::python&lt;br /&gt;
import webdav.client as wc&lt;br /&gt;
options = {&lt;br /&gt;
    'webdav_hostname': "https://webdav.yandex.ru",&lt;br /&gt;
    'webdav_login': "w_login",&lt;br /&gt;
    'webdav_paassword': "w_password",&lt;br /&gt;
    'cert_path': "/etc/ssl/certs/certificate.crt",&lt;br /&gt;
    'key_path': "/etc/ssl/private/certificate.key"&lt;br /&gt;
}&lt;br /&gt;
client = wc.Client(options)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Синхронные методы&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Проверка существования ресурса&lt;br /&gt;
:::python&lt;br /&gt;
client.check("dir1/file1")&lt;br /&gt;
client.check("dir1/")&lt;/p&gt;
&lt;p&gt;Получение информации о ресурсе&lt;br /&gt;
:::python&lt;br /&gt;
client.info("dir1/file1")&lt;br /&gt;
client.info("dir1/")&lt;/p&gt;
&lt;p&gt;Проверка свободного места&lt;br /&gt;
:::python&lt;br /&gt;
free_size = client.free()&lt;/p&gt;
&lt;p&gt;Получение списка ресурсов&lt;br /&gt;
:::python&lt;br /&gt;
files1 = client.list()&lt;br /&gt;
files2 = client.list("dir1")&lt;/p&gt;
&lt;p&gt;Создание директории&lt;br /&gt;
:::python&lt;br /&gt;
client.mkdir("dir1/dir2")&lt;/p&gt;
&lt;p&gt;Удаление ресурса&lt;br /&gt;
:::python&lt;br /&gt;
client.clean("dir1/dir2/")&lt;/p&gt;
&lt;p&gt;Копирование ресурса&lt;br /&gt;
:::python&lt;br /&gt;
client.copy(remote_path_from="dir1/file1", remote_path_to="dir2/file1")&lt;/p&gt;
&lt;p&gt;Перемещения ресурса&lt;br /&gt;
:::python&lt;br /&gt;
client.move(remote_path_from="dir1/file1", remote_path_to="dir2/file1")&lt;/p&gt;
&lt;p&gt;Загрузка ресурса&lt;br /&gt;
:::python&lt;br /&gt;
client.download_sync(remote_path="dir1/file1", local_path="~/Downloads/file1")&lt;br /&gt;
client.download_sync(remote_path="dir1/dir2/", local_path="~/Downloads/dir2/")&lt;/p&gt;
&lt;p&gt;Выгрузка ресурса&lt;br /&gt;
:::python&lt;br /&gt;
client.upload_sync(remote_path="dir1/file1", local_path="~/Documents/file1")&lt;br /&gt;
client.upload_sync(remote_path="dir1/dir2/", local_path="~/Documents/dir2/")&lt;/p&gt;
&lt;p&gt;Публикация ресурса&lt;br /&gt;
:::python&lt;br /&gt;
link = client.publish("dir1/file1")&lt;/p&gt;
&lt;p&gt;Отмена публикации ресурса&lt;br /&gt;
:::python&lt;br /&gt;
client.unpublish("dir1/file1")&lt;/p&gt;
&lt;p&gt;Обработка исключений&lt;br /&gt;
:::python&lt;br /&gt;
from webdav.client import WebDavException&lt;br /&gt;
try:&lt;br /&gt;
    ...&lt;br /&gt;
except WebDavException as e:&lt;br /&gt;
    loggin_except(e)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Асинхронные методы&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Загрузка ресурса&lt;br /&gt;
:::python&lt;br /&gt;
client.download_async(remote_path="dir1/file1", local_path="~/Downloads/file1", callback=callback)&lt;br /&gt;
client.download_async(remote_path="dir1/dir2/", local_path="~/Downloads/dir2/", callback=callback)&lt;/p&gt;
&lt;p&gt;Выгрузка ресурса&lt;br /&gt;
:::python&lt;br /&gt;
client.upload_async(remote_path="dir1/file1", local_path="~/Documents/file1", callback=callback)&lt;br /&gt;
client.upload_async(remote_path="dir1/dir2/", local_path="~/Documents/dir2/", callback=callback)&lt;/p&gt;
&lt;h1 id="resource-api"&gt;Resource API&lt;/h1&gt;
&lt;p&gt;Resource API - используя концепцию ООП, обеспечивает работу с облачными хранилищами на уровне ресурсов.&lt;/p&gt;
&lt;p&gt;Получение ресурса&lt;br /&gt;
:::python&lt;br /&gt;
res1 = client.resource("dir1/file1")&lt;/p&gt;
&lt;p&gt;Работа с ресурсом&lt;br /&gt;
:::python&lt;br /&gt;
res1.rename("file2")&lt;br /&gt;
res1.move("dir1/file2")&lt;br /&gt;
res1.copy("dir2/file1")&lt;br /&gt;
info = res1.info()&lt;br /&gt;
res1.read_from(buffer)&lt;br /&gt;
res1.read(local_path="~/Documents/file1")&lt;br /&gt;
res1.read_async(local_path="~/Documents/file1", callback)&lt;br /&gt;
res1.write_to(buffer)&lt;br /&gt;
res1.write(local_path="~/Downloads/file1")&lt;br /&gt;
res1.write_async(local_path="~/Downloads/file1", callback)&lt;/p&gt;
&lt;h1 id="wdc"&gt;wdc&lt;/h1&gt;
&lt;p&gt;wdc - кросплатформенная утилита, обеспечивающая удобную работу с WebDAV-серверами прямо из Вашей консоли. Помимо полной реализации методов из webdav API, также добавлены методы синхронизации содержимого локальной и удаленной директорий.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Настройка подключения&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;:::bash&lt;br /&gt;
$ wdc login &lt;a href="https://wedbav.yandex.ru" rel="nofollow"&gt;https://wedbav.yandex.ru&lt;/a&gt; -p &lt;a href="http://127.0.0.1:8080" rel="nofollow"&gt;http://127.0.0.1:8080&lt;/a&gt;&lt;br /&gt;
webdav_login: w_login&lt;br /&gt;
webdav_password: w_password&lt;br /&gt;
proxy_login: p_login&lt;br /&gt;
proxy_password: p_password&lt;/p&gt;
&lt;p&gt;Также имеются дополнительные ключи &lt;code&gt;--cert-path[-c]&lt;/code&gt; и &lt;code&gt;--key-path[-k]&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Пример работы с утилитой&lt;/strong&gt;&lt;br /&gt;
:::bash&lt;br /&gt;
$ wdc check&lt;br /&gt;
success&lt;br /&gt;
$ wdc check file1&lt;br /&gt;
not success&lt;br /&gt;
$ wdc free&lt;br /&gt;
245234120344&lt;br /&gt;
$ wdc ls dir1&lt;br /&gt;
file1&lt;br /&gt;
...&lt;br /&gt;
fileN&lt;br /&gt;
$ wdc mkdir dir2&lt;br /&gt;
$ wdc copy dir1/file1 -t dir2/file1&lt;br /&gt;
$ wdc move dir2/file1 -t dir2/file2&lt;br /&gt;
$ wdc download dir1/file1 -t ~/Downloads/file1&lt;br /&gt;
$ wdc download dir1/ -t ~/Downloads/dir1/&lt;br /&gt;
$ wdc upload dir2/file2 -f ~/Documents/file1&lt;br /&gt;
$ wdc upload dir2/ -f ~/Documents/&lt;br /&gt;
$ wdc publish di2/file2&lt;br /&gt;
&lt;a href="https://yadi.sk/i/vWtTUcBucAc6k" rel="nofollow"&gt;https://yadi.sk/i/vWtTUcBucAc6k&lt;/a&gt;&lt;br /&gt;
$ wdc unpublish dir2/file2&lt;br /&gt;
$ wdc pull dir1/ -t ~/Documents/dir1/&lt;br /&gt;
$ wdc push dir1/ -f ~/Documents/di1/&lt;br /&gt;
$ wdc info dir1/file1&lt;br /&gt;
{'name': 'file1', 'modified': 'Thu, 23 Oct 2014 16:16:37 GMT',&lt;br /&gt;
'size': '3460064', 'created': '2014-10-23T16:16:37Z'}&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Designerror</dc:creator><pubDate>Sun, 26 Oct 2014 08:27:19 -0000</pubDate><guid>https://sourceforge.net7639f0f1e1748c2ba7894b126f0064387a8eb9c9</guid></item><item><title>Home modified by Designerror</title><link>https://sourceforge.net/p/webdavlcient/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Welcome to your wiki!&lt;/p&gt;
&lt;p&gt;This is the default page, edit it as you see fit. To add a new page simply reference it within brackets, e.g.: &lt;span&gt;[SamplePage]&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;The wiki uses &lt;a class="" href="/p/webdavlcient/wiki/markdown_syntax"&gt;Markdown&lt;/a&gt; syntax.&lt;/p&gt;
&lt;p&gt;&lt;h6&gt;Project Members:&lt;/h6&gt;
&lt;ul class="md-users-list"&gt;
&lt;li&gt;&lt;a href="/u/designerror"&gt;Designerror&lt;/a&gt; (admin)&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;/p&gt;&lt;p&gt;&lt;span class="download-button-544caa267929e50d4c1fae02" style="margin-bottom: 1em; display: block;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Designerror</dc:creator><pubDate>Sun, 26 Oct 2014 08:00:38 -0000</pubDate><guid>https://sourceforge.net22732113e55b8b8e910504eb58e85f75826edc43</guid></item></channel></rss>