东东's Blog

东东's Blog

马上订阅 东东's Blog RSS 更新: https://blog.yasking.org/atom.xml

从 SharePoint 获取文件及其历史版本(基于 GoSIP SDK)

2024年2月1日 21:00

本文记录了一些 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>",
    }...

剩余内容已隐藏

查看完整文章以阅读更多