Office365-rest-python-client: طلبات MissingSchema Error عند تنزيل الملف

تم إنشاؤها على ٢ أكتوبر ٢٠٢٠  ·  4تعليقات  ·  مصدر: vgrem/Office365-REST-Python-Client

أهلا!

أواجه مشكلة في تنزيل ملف من SharePoint باستخدام أحدث إصدار 2.2.1 من Office365. عندما أحاول تنزيل ملف ، يظهر خطأ "MissingSchema" من وحدة الطلبات. لا أعرف ما حدث ، إذا عدت إلى الإصدار 2.1.5 ، فستعمل الشفرة بشكل جيد. شكراً جزيلاً لكم وأقدر العمل الجاد في هذه الوحدة ؛ مفيد للغاية!

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)

خطأ:
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?

باستخدام MacOS ،
Office365 2.2.1 ،
Python 3.8.3 ،
يطلب 2.2.4

bug question

التعليق الأكثر فائدة

يوجد خطأ في الإصدار 2.2.1 تحتاج إما إلى استخدام الأحدث من git أو إصلاحه يدويًا في التثبيت هنا https://github.com/vgrem/Office365-REST-Python-Client/blob/master/office365/sharepoint /files/file.py#L275

لاحظ أن إصدارك ctx.service_root_url هو خاصية ولكن يجب أن يكون طريقة ctx.service_root_url()

ال 4 كومينتر

يوجد خطأ في الإصدار 2.2.1 تحتاج إما إلى استخدام الأحدث من git أو إصلاحه يدويًا في التثبيت هنا https://github.com/vgrem/Office365-REST-Python-Client/blob/master/office365/sharepoint /files/file.py#L275

لاحظ أن إصدارك ctx.service_root_url هو خاصية ولكن يجب أن يكون طريقة ctx.service_root_url()

شكرًا لك على efremovd و etiennecelery لالتقاطه وتحديده بدقة ، إنه بالفعل خطأ وقد تمت مواجهته في الإصدار 2.2.1 بسبب إعادة هيكلة service_root_url خاصية إلى طريقة.

كما ذكرنا ، فإن الإصدار _ الأحدث _ المتاح من GitHub يحل هذه المشكلة:

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

بدلاً من ذلك ، يمكن تنزيل الملف كما هو موضح أدناه:

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

شكرا لك!! عمل عظيم

تم حل إغلاق هذا منذ ذلك الحين وتم إصدار إصدار 2.2.2 .

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات