Office365-rest-python-client: Solicita el error MissingSchema al descargar el archivo

Creado en 2 oct. 2020  ·  4Comentarios  ·  Fuente: vgrem/Office365-REST-Python-Client

¡Hola!

Tengo problemas para descargar un archivo de SharePoint con la última versión 2.2.1 de Office365. Cuando intento descargar un archivo, aparece un error "MissingSchema" del módulo de solicitudes. No sé qué pasó, si vuelvo a la versión 2.1.5 el código funciona bien. Muchas gracias y aprecio el arduo trabajo en este módulo; super util!

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)

Error:
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?

Usando MacOS,
Office365 2.2.1,
Python 3.8.3,
solicitudes 2.2.4

bug question

Comentario más útil

Hay un error en la versión 2.2.1 que necesita usar la última versión de git o solucionarlo manualmente en su instalación aquí https://github.com/vgrem/Office365-REST-Python-Client/blob/master/office365/sharepoint /files/file.py#L275

Tenga en cuenta que en su versión ctx.service_root_url es una propiedad pero debería ser un método ctx.service_root_url()

Todos 4 comentarios

Hay un error en la versión 2.2.1 que necesita usar la última versión de git o solucionarlo manualmente en su instalación aquí https://github.com/vgrem/Office365-REST-Python-Client/blob/master/office365/sharepoint /files/file.py#L275

Tenga en cuenta que en su versión ctx.service_root_url es una propiedad pero debería ser un método ctx.service_root_url()

Gracias @efremovd y @etiennecelery por detectarlo y localizarlo, de hecho es un error y se encuentra en la versión 2.2.1 debido a la refactorización de la propiedad service_root_url en el método.

Como se mencionó, la versión _latest_ disponible en GitHub resuelve este problema:

pip install git+https://github.com/vgrem/Office365-REST-Python-Client.git

Alternativamente, el archivo se puede descargar como se muestra a continuación:

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()

¡¡Gracias!! Buen trabajo

El cierre de este desde entonces se ha resuelto y se ha lanzado la versión 2.2.2 .

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

ahulist picture ahulist  ·  5Comentarios

bobbydurrett picture bobbydurrett  ·  8Comentarios

Cesaaar picture Cesaaar  ·  7Comentarios

Bachatero picture Bachatero  ·  3Comentarios

stardust85 picture stardust85  ·  4Comentarios