Office365-rest-python-client: Erro de MissingSchema de solicitações ao baixar o arquivo

Criado em 2 out. 2020  ·  4Comentários  ·  Fonte: vgrem/Office365-REST-Python-Client

Oi!

Estou tendo problemas para baixar um arquivo do SharePoint usando a versão 2.2.1 mais recente do Office365. Quando tento baixar um arquivo, aparece um erro "MissingSchema" no módulo de solicitações. Não sei o que aconteceu, se eu voltar para a versão 2.1.5 o código funciona bem. Muito obrigado e aprecio o trabalho árduo neste módulo; super útil!

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)

Erro:
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,
pedidos 2.2.4

bug question

Comentários muito úteis

Há um bug na versão 2.2.1 que você precisa usar o último do git ou corrigi-lo manualmente em sua instalação aqui https://github.com/vgrem/Office365-REST-Python-Client/blob/master/office365/sharepoint /files/file.py#L275

Observe que em sua versão ctx.service_root_url é uma propriedade, mas deve ser um método ctx.service_root_url()

Todos 4 comentários

Há um bug na versão 2.2.1 que você precisa usar o último do git ou corrigi-lo manualmente em sua instalação aqui https://github.com/vgrem/Office365-REST-Python-Client/blob/master/office365/sharepoint /files/file.py#L275

Observe que em sua versão ctx.service_root_url é uma propriedade, mas deve ser um método ctx.service_root_url()

Obrigado @efremovd e @etiennecelery por capturá-lo e localizá-lo; na verdade, é um bug e foi encontrado na versão 2.2.1 devido à refatoração da propriedade service_root_url para o método.

Como foi mencionado, a versão _mais recente_ disponível no GitHub resolve esse problema:

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

Alternativamente, o arquivo pode ser baixado conforme demonstrado abaixo:

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

Obrigado!! Ótimo trabalho

Fechar este já foi resolvido e a versão 2.2.2 foi lançada.

Esta página foi útil?
0 / 5 - 0 avaliações