Salut!
Je rencontre des difficultés pour télécharger un fichier à partir de SharePoint à l'aide de la dernière version 2.2.1 d'Office365. Lorsque j'essaie de télécharger un fichier, une erreur "MissingSchema" du module de requêtes apparaît. Je ne sais pas ce qui s'est passé, si je reviens à la version 2.1.5, le code fonctionne correctement. Merci beaucoup et j'apprécie le travail acharné dans ce module; hyper utile !
from office365.runtime.auth.authentication_context import AuthenticationContext
from office365.sharepoint.client_context import ClientContext
from office365.sharepoint.file import File
def auth(username, password):
ctx_auth = AuthenticationContext(url)
if ctx_auth.acquire_token_for_user(username, password):
ctx = ClientContext(url, ctx_auth)
return ctx
ctx = auth(username, password)
response = File.open_binary(ctx, relative_url)
Erreur:
MissingSchema: Invalid URL "<bound method ClientContext.service_root_url of <office365.sharepoint.client_context.ClientContext object at 0x7fb4e44c3d90>>web/getfilebyserverrelativeurl('MYRELATIVEURL')/\\$value": No schema supplied. Perhaps you meant http://<bound method ClientContext.service_root_url of <office365.sharepoint.client_context.ClientContext object at 0x7fb4e44c3d90>>web/getfilebyserverrelativeurl('MYRELATIVEURL')/\$value?
Sous MacOS,
Office365 2.2.1,
Python 3.8.3,
demandes 2.2.4
Il y a un bogue dans la version 2.2.1 que vous devez soit utiliser la dernière version de git, soit le corriger manuellement dans votre installation ici https://github.com/vgrem/Office365-REST-Python-Client/blob/master/office365/sharepoint /files/file.py#L275
Notez que dans votre version ctx.service_root_url
est une propriété mais devrait être une méthode ctx.service_root_url()
Merci @efremovd et @etiennecelery pour l'avoir attrapé et 2.2.1
raison de la refactorisation service_root_url
propriété
Comme mentionné, la _dernière_ version disponible sur GitHub résout ce problème :
pip install git+https://github.com/vgrem/Office365-REST-Python-Client.git
Alternativement, le fichier peut être téléchargé comme illustré ci-dessous :
file_url = '{server-relative-path-to-download}'
with open(download_path, "wb") as local_file:
file = ctx.web.get_file_by_server_relative_url(file_url).download(local_file).execute_query()
Merci!! Bon travail
La fermeture de celui-ci depuis a été résolue et la version 2.2.2
a été publiée.
Commentaire le plus utile
Il y a un bogue dans la version 2.2.1 que vous devez soit utiliser la dernière version de git, soit le corriger manuellement dans votre installation ici https://github.com/vgrem/Office365-REST-Python-Client/blob/master/office365/sharepoint /files/file.py#L275
Notez que dans votre version
ctx.service_root_url
est une propriété mais devrait être une méthodectx.service_root_url()