我想列出并从公共Sharepoint目录下载文件。
我有格式的链接
https://xxx.sharepoint.com/:f:/s/site_name/long_id?e=shorter_id
重定向到
https://xxx.sharepoint.com/sites/site_name/Shared%20Documents/Forms/AllItems.aspx?cid=some_id&RootFolder=encoded_path&FolderCTID=another_is
对于非公共文件,我使用的是Office365-REST-Python-Client和真实帐户凭据,但是该库不允许在没有身份验证的情况下使用。
似乎可以完成相对简单的任务,我可以使用裸露的REST API,但是当我是完全的Sharepoint新手时,可以使用一些技巧来开始查找。
答案 0 :(得分:0)
我认为可能无法使用Sharepoint API存档(至少找不到方法),但是可以通过处理裸请求来实现。
Sharepoint似乎执行了一些自动授权,并执行了一些附加授权cookie的重定向。
您只需为所有请求使用一些真实的User-Agent
。
步骤如下:
https://xxx.sharepoint.com/:f:/s/site_name/long_id?e=shorter_id
您将收到301到授权端点https://xxx.sharepoint.com/sites/site_name/_layouts/15/guestaccess.aspx?e=shorter_id&share=long_id
。这将设置一些cookie和302到您的目的地https://xxx.sharepoint.com/sites/site_name/Shared%20Documents/path_to_dir?cid=some_id
,这将返回真实数据。您必须使用上一步中的身份验证Cookie。script
对象的ListData
标签。它将包含描述所有文件的结构。您对FileRef
属性感兴趣。 https://xxx.sharepoint.com/sites/site_name/_layouts/15/download.aspx?SourceUrl=FileRef
,它将下载您的数据。记住有关auth标头的信息。它不及最优,但对我有用。