Доступ к самбе совместно использует с gio в Python

Я пытаюсь сделать простой клиент командной строки для доступа к долям через привязку Python gio (да, основное требование состоит в том, чтобы использовать gio).

Я вижу, что сравнение с он - гном-vfs-предшественник, это обеспечивает некоторые средства сделать материал аутентификации (разделение на подклассы MountOperation), и даже некоторые методы, которые довольно характерны для долей самбы, как set_domain().

Но я застреваю с этим кодом:

import gio

fh = gio.File("smb://server_name/")

Если тому серверу нужна аутентификация, я предполагаю что вызов к fh.mount_enclosing_volume() необходим, как это, методы берут a MountOperation в качестве параметра. Проблема состоит в том, что вызов этого методы не делает ничего и логического fh.enumerate_children() (для списка доступных долей), который прибывает следующие сбои.

Кто-либо мог обеспечить рабочий пример того, как это будет сделано с gio?

5
задан krillgar 28 July 2014 в 13:19
поделиться

1 ответ

Следующее, по-видимому, является минимальным кодом, необходимым для монтажа громкости:

def mount(f):
    op = gio.MountOperation()
    op.connect('ask-password', ask_password_cb)
    f.mount_enclosing_volume(op, mount_done_cb)

def ask_password_cb(op, message, default_user, default_domain, flags):
    op.set_username(USERNAME)
    op.set_domain(DOMAIN)
    op.set_password(PASSWORD)
    op.reply(gio.MOUNT_OPERATION_HANDLED)

def mount_done_cb(obj, res):
    obj.mount_enclosing_volume_finish(res)

(получено из GVFS-Mount .)

Кроме того, вам может понадобиться GLIB.MainLoop Функции монтирования асинхронные. См. Исходный код GVFS-монтажа для деталей.

6
ответ дан 14 December 2019 в 13:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: