从 SharePoint 获取文件及其历史版本(基于 GoSIP SDK)
本文记录了一些 GoSIP 获取 SharePoint 的示例,相对来说重点是获取历史版本,虽说 GoSIP 尽量做到了开箱即用,但是对开发者来说,本身对 SharePoint 服务也需要有所了解,并熟悉其 REST API 风格。
如果你需要通过 Golang 程序读写 SharePoint 上的文件,相信本篇笔记会对你有所帮助。
环境说明
SharePoint Root Site
在「文档」类别的根目录下有一个 test.txt 文件

SharePoint 子网站
在 Root Site 的「网站内容」类别下,点击「新建 - 子网站」进行创建

标题为「文档中心」,路径为 subtest

同样,创建一个测试文件,名为 subsite_test.txt

获取文件的路径
勾选文件,在右侧面板可以找到文件的路径

得到文件的路径
https://mycompany.sharepoint.com/sites/appsite/Shared%20Documents/test.txt
SubSite 同理,获取 subsite_test.txt 的路径为
https://mycompany.sharepoint.com/sites/appsite/subsite/Documents/subsite_test.txt
这里可以看到一些区别,根站点的「文档」应为对应 “Shared Documents”,子站点则为 “Documents”
Golang GoSIP 库简介
GoSIP 地址:GoSIP - SharePoint SDK for Go
微软的 REST API 很难用现代化的接口调用方式去理解,看 SharePoint 分散在不同地方的文档糟心的很,还好有 GoSIP 库,它对 SharePoint API 做了封装,使用体验良好。
官方文档清晰易懂,以下众多示例也是 GoSIP 使用的 Examples,GoSIP 支持多种认证方式,以下示例均使用的用户名/密码认证方式进行的验证(saml)
代码示例(1)用户名密码认证
认证并获取网站标题
auth.go
package main
import (
"fmt"
"github.com/koltyakov/gosip"
"github.com/koltyakov/gosip/api"
strategy "github.com/koltyakov/gosip/auth/saml"
"log"
)
func main() {
authCfg := &strategy.AuthCnfg{
SiteURL: "https://mycompany.sharepoint.com/sites/appsite",
Username: "<user-user-email>",
Password: "<user-user-password>",
}...剩余内容已隐藏