我正在尝试使用Python通过REST API从sharepoint下载文件。这是我的代码:
import requests
from requests_ntlm import HttpNtlmAuth
req = requests.get("http://sharepoint/sites/publishing/sales/_api/web/getfilebyserverrelativeurl('\Documents\Folder\data_04202015.csv')",auth=HttpNtlmAuth('domain\\username','password'))
print req.status_code
如果请求的网址为“http://sharepoint/sites/publishing/sales/_api/web”,则返回代码将为200,但在尝试使用GetFileByServerRelativeUrl时,它将返回400。
答案 0 :(得分:3)
最后,我可以使用sharepoint library
访问这些文件文件路径如下:http://sharepoint/sites/publishing/sales/Sales_Distribution/Data/record.csv
请注意,如果您尝试访问文件夹下的文件,则必须指定/ sites /...的路径根。
from sharepoint import SharePointSite, basic_auth_opener
import urllib2
from ntlm import HTTPNtlmAuthHandler
user = 'domain\username'
password = "password"
server_url = "http://sharepoint/"
site_url = server_url + "sites/publishing/sales/"
passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
passman.add_password(None, site_url, user, password)
auth_NTLM = HTTPNtlmAuthHandler.HTTPNtlmAuthHandler(passman)
opener = urllib2.build_opener(auth_NTLM)
urllib2.install_opener(opener)
site = SharePointSite(site_url, opener)
salesList = site.lists['Sales Distribution']
fileList = salesList.get_rows(folder='/sites/publishing/sales/Sales_Distribution/Data')
print "================================="
url = fileList[5].as_dict()['EncodedAbsUrl']
file = fileList[5].open()
content = urllib2.urlopen(url)
print content.read()