You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python上传文件至个人Microsoft SharePoint目录遇权限及操作问题

问题:Python脚本上传CSV至SharePoint个人目录失败

我尝试用Python脚本将CSV文件上传至Microsoft SharePoint个人目录,目录URL格式如下:

https://{tenant}-my.sharepoint.com/personal/{user}_{tenant}_com/Documents/{path}

我已在主租户域中配置SharePoint API访问权限,通过_layouts/15/appregnew.aspx和_layouts/15/appinv.aspx操作获取了client_id和client_secret,且由管理员授予了权限,但不确定这些凭据是否能用于上传文件至上述个人目录。

初始尝试代码

from office365.runtime.auth.client_credential import ClientCredential
from office365.sharepoint.client_context import ClientContext
import os

site_url = ""  # IS THIS THE TENANT-MY.SHAREPOINT.COM URL LIKE ABOVE?
client_id = ""
client_secret = ""

file_path = "path/to/your/local/file.csv"
folder_url = "Shared Documents"  # IS THIS THE TENANT-MY.SHAREPOINT.COM PATH LIKE ABOVE?

try:
    credentials = ClientCredential(client_id, client_secret)
    ctx = ClientContext(site_url).with_credentials(credentials)

    with open(file_path, "rb") as f:
        file_content = f.read()

    target_folder = ctx.web.get_folder_by_server_relative_url(folder_url)
        file_name = os.path.basename(file_path)
    uploaded_file = target_folder.upload_file(file_name, file_content).execute_query()

更新进展

已成功完成连接,代码如下:

client_id = ""
client_secret = ""
url = "https://{tenant}-my.sharepoint.com/personal/{user}_{tenant}_com/"
ctx_auth = AuthenticationContext(url)
if ctx_auth.acquire_token_for_app(client_id, client_secret):
   ctx = ClientContext(url, ctx_auth)
   web = ctx.web
   ctx.load(web)
   ctx.execute_query()
   print("Web title: {0}".format(web.properties["Title"]))

执行后输出:

>>> Web title: {#correct user name#}

但目前通过该方式与OneDrive交互时,无法读取或写入任何文件。

内容的提问来源于stack exchange,提问作者OJT

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 11:48:19