Python上传文件至个人Microsoft 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
相关产品推荐
相关产品推荐

