Python 使用 Shareplum 将文件上传到 Sharepoint

问题描述 投票:0回答:1

我正在使用这段共享代码尝试使用 Shareplum 将文件上传到 Sharepoint,进入共享文档文件夹。

import requests
from shareplum import Office365

# Set Login Info
username = '[email protected]'
password = 'myverifiedapppassword'
site_name = 'mysite'
base_path = 'https://xxxxxxxx.sharepoint.com'
doc_library = 'Shared%20Documents'
file_name = "hellotest.txt" #when your file in the same directory

# Obtain auth cookie
authcookie = Office365(base_path, username=username, password=password).GetCookies()
session = requests.Session()
session.cookies = authcookie
session.headers.update({'user-agent': 'python_bite/v1'})
session.headers.update({'accept': 'application/json;odata=verbose'})

session.headers.update({'X-RequestDigest': 'FormDigestValue'})
response = session.post(url=base_path + "/sites/" + site_name + "/_api/web/GetFolderByServerRelativeUrl('" + doc_library + "')/Files/add(url='a.txt',overwrite=true)",
                         data="")
session.headers.update({'X-RequestDigest': response.headers['X-RequestDigest']})

# Upload file
with open(file_name, 'rb') as file_input:
    try:
        response = session.post(
            url=base_path + "/sites/" + site_name + f"/_api/web/GetFolderByServerRelativeUrl('" + doc_library + "')/Files/add(url='"
            + file_name + "',overwrite=true)",

            data=file_input)
        print("response: ", response.status_code) #it returns 200
        if response.status_code == '200':
            print("File uploaded successfully")
    except Exception as err:
        print("Something went wrong: " + str(err))

print('File Uploaded Successfully')

运行代码时出现问题......我总是收到回溯和关键错误,如下所示:

回溯(最近一次调用最后一次): 文件“S:\upload.py”,第 22 行,位于 session.headers.update({'X-RequestDigest': response.headers['X-RequestDigest']}) 文件“C:\Python39\lib\site-packages equests\structurals.py",第 54 行,位于 getitem 返回 self._store[key.lower()][1] KeyError:'x-requestdigest'

第 22 行中与 x-requestdigest 有关的东西无法正常工作,但我不知道是什么。 任何提示将不胜感激!!!

谢谢

python sharepoint upload shareplum
1个回答
0
投票

我已经尝试了下面的代码并且它有效。

from shareplum import Office365
from shareplum import Site
from shareplum.site import Version

#Logging info
server_url = "https://example.sharepoint.com/"
site_url = server_url + "sites/my_site_name"
Username = 'myusername'
Password = 'mypassword'
Sharepoint_folder = 'Shared Documents'
fileName = 'myfilename'

def file_upload_to_sharepoint(**context):
    authcookie = Office365(server_url, username = Username, password=Password).GetCookies()
    site = Site(site_url, version=Version.v365, authcookie=authcookie)
    folder = site.Folder(Sharepoint_folder)
    with open(fileName, mode='rb') as file:
        fileContent = file.read()
    folder.upload_file(fileContent, "filename.bin")

file_upload_to_sharepoint()

请告诉我这是否也适合您。

© www.soinside.com 2019 - 2024. All rights reserved.