أهلا!
أواجه مشكلة في تنزيل ملف من 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
يوجد خطأ في الإصدار 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
.
التعليق الأكثر فائدة
يوجد خطأ في الإصدار 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()