Я должен загрузить файл на корпоративном сайте Sharepoint с помощью CPython. Существующая кодовая база препятствует тому, чтобы я использовал Ironpython, не портируя код, таким образом.NET WebClient
библиотека отсутствует. Я также хочу загрузить файл, не предлагая пользователю сохранить и не предлагая пользователю сетевые учетные данные. Я попробовал другие библиотеки, но у них всех были недостатки:
urllib2
плюс python-ntlm
: требует, чтобы пользователю/передаче предоставилиsubprocess
использование wget
или cURL
: не мог заставить ни одного проходить проверку подлинности, не запрашивая пользователя/передачуЯ ничего не мог найти в pywin32
это похоже, это сцепляется в urllib2 или обеспечивает эквивалентную функциональность. Так, есть ли способ загрузить файл, не запрашивая учетные данные и не предлагая пользователю нажать 'Save'?
Я закончил находку какой-то код VB с страницы поддержки Microsoft , которые используются функцию из URLMON.DLL
Я реплицировал его одной строкой CTYPES
CDEPENT, и он выполнил именно то, что мне нужно было сделать.
ctypes.windll.urlmon.URLDownloadToFileA(0,url,local_file_name,0,0)
URL
- это местоположение ресурса (в этом случае, файл Excel на сайте SharePoint) local_file_name
- это локальный путь и имя файла для сохранения. Это прошло учетные данные через провод без подсказок.