cr

package module
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 5, 2024 License: MIT Imports: 24 Imported by: 0

README

ZxwyWebSite/cr-go-sdk

简介

  • Cloudreve Golang SDK 接口封装
  • 测试阶段,存在不稳定因素,仅供参考,不建议用于生产环境
  • 基于社区版 V3.8.3 开发,这是V3系列的最后一个版本,请尽量更新到此版本以保证稳定运行
  • 目前只是基于Api编写了接口调用方法,具体功能还需另外实现
  • 原生方法以Api路径命名,相同路径根据操作命名,封装方法以Sdk开头
  • example目录里有一个演示程序

使用

  1. 安装依赖
    go get -u github.com/ZxwyWebSite/cr-go-sdk
    
  2. 创建站点
    site, _ := cr.NewSite(`https://cloudreveplus-demo.onrender.com/`, cr.ApiV353)
    
  3. 登录账号
    // 添加账户信息
    site.Users = &cr.UserObj{
    	Mail: `admin@cloudreve.org`,
    	Pass: `CloudrevePlusDemo`,
    	Cookie: cr.ParseCookie(`cloudreve-session=xxx; Path=/; Expires=Sat, 11 May 2024 09:05:02 GMT; Max-Age=604800; HttpOnly`),
    }
    // 初始化站点数据
    err = site.SdkInit()
    // 登录账号
    err = site.SdkLogin()
    
  4. 执行操作
    // 列出文件
    list, err := site.Directory(`/`)
    if err != nil {
    	panic(err)
    }
    fmt.Printf("%#v\n", list)
    // 下载文件
    link, err := site.FileDownload(`XBUl`)
    if err != nil {
    	panic(err)
    }
    fmt.Println(*link)
    // 上传文件
    file, _ := os.Open(`.outdated/test.mp4`)
    err = site.SdkUpload(`/`, file, `test_0.mp4`)
    

结构

  • models|pkg|serializer|service/ 参数定义
  • uploader/ 上传组件
  • api.go 原版接口定义
  • sdk.go 扩展功能封装
  • site.go 站点对象
  • user.go 账户对象
  • util.go 实用工具

其它

  • EOF

Documentation

Overview

A Simple CloudreveV3 SDK

Index

Constants

View Source
const (
	Cr_Version   = `0.0.1`
	Cr_UserAgent = `Mozilla/5.0 (compatible; cr-go-sdk/` + Cr_Version + `)`
	Cr_Accept    = `application/json, text/plain, */*`
)

一些全局常量

View Source
const (
	ApiPlus uint8 = iota // 3.8.3+1.1-plus
	ApiV353              // 3.5.3
	ApiV383              // 3.8.3

)

Api版本 访问 站点地址/api/v3/site/ping 获取

Variables

View Source
var (
	Cr_Debug = true
)

一些全局变量

Functions

func GenerateSrc

func GenerateSrc(isDir bool, ids ...string) *explorer.ItemIDService

生成文件列表

func ParseCookie

func ParseCookie(str string) *http.Cookie

格式化Cookie字符串

func SizeToString

func SizeToString(bytes uint64) string

格式化文件大小

Types

type SiteObj

type SiteObj struct {
	// Client  *http.Client // HTTP 客户端
	Addr    string                 // 站点地址 (首页)
	ApiVer  uint8                  // 接口版本
	Config  *serializer.SiteConfig // 站点配置
	Users   *UserObj               // 账号数据
	Version string                 // 程序版本
}

Cloudreve 站点驱动

func NewSite

func NewSite(addr string, apiver uint8) (*SiteObj, error)

新建站点对象

func (*SiteObj) Aria2Downloading

func (c *SiteObj) Aria2Downloading(q *aria2.DownloadListService) (*[]serializer.DownloadListResponse, error)

获取正在下载中的任务 [查询参数] [列表条目,错误]

func (*SiteObj) Aria2Finished

获取已完成的任务 [查询参数] [列表条目,错误]

func (*SiteObj) Aria2Select

func (c *SiteObj) Aria2Select(gid string, s *aria2.SelectFileService) error

重新选择要下载的文件 [任务id,选择参数] [错误]

func (*SiteObj) Aria2Task

func (c *SiteObj) Aria2Task(gid string) error

取消或删除下载任务 [任务id] [错误]

func (*SiteObj) Aria2Torrent

func (c *SiteObj) Aria2Torrent(id string, s *aria2.AddURLService) error

创建种子下载任务 [文件id,任务参数] [错误]

func (*SiteObj) Aria2Url

func (c *SiteObj) Aria2Url(s *aria2.BatchAddURLService) (*[]serializer.Response[struct{}], error)

创建URL下载任务 [任务参数] [结果,错误]

func (*SiteObj) CallbackOneDriveFinish

func (c *SiteObj) CallbackOneDriveFinish(sid string) error

OneDrive文件上传完成 [会话id] [错误]

func (*SiteObj) CallbackS3

func (c *SiteObj) CallbackS3(sid string) error

AWS S3策略上传回调 [会话id] [错误]

func (*SiteObj) Directory

func (c *SiteObj) Directory(path string) (*serializer.ObjectList, error)

列出目录下内容 [路径] [错误]

func (*SiteObj) DirectoryNew

func (c *SiteObj) DirectoryNew(s *explorer.DirectoryService) error

创建目录 [路径参数] [错误]

func (*SiteObj) FileArchive

func (c *SiteObj) FileArchive(s *explorer.ItemIDService) (*string, error)

打包要下载的文件 [文件列表] [结果,错误]

func (*SiteObj) FileCompress

func (c *SiteObj) FileCompress(s *explorer.ItemCompressService) error

创建文件压缩任务 [任务参数] [错误]

func (*SiteObj) FileContent

func (c *SiteObj) FileContent(id string) string

获取文本文件内容 (重定向) [文件id] [链接]

func (*SiteObj) FileCreate

func (c *SiteObj) FileCreate(s *explorer.SingleFileService) error

创建空白文件 [路径参数] [错误]

func (*SiteObj) FileDecompress

func (c *SiteObj) FileDecompress(s *explorer.ItemDecompressService) error

创建文件解压缩任务 [任务参数] [错误]

func (*SiteObj) FileDoc

func (c *SiteObj) FileDoc(id string) (*serializer.DocPreviewSession, error)

取得Office文档预览地址 [文件id] [预览会话,错误]

func (*SiteObj) FileDownload

func (c *SiteObj) FileDownload(id string) (*string, error)

创建文件下载会话 [文件id] [下载链接,错误]

func (*SiteObj) FilePreview

func (c *SiteObj) FilePreview(id string) string

预览文件 (重定向) [文件id] [链接]

func (*SiteObj) FileRelocate

func (c *SiteObj) FileRelocate(s *explorer.ItemRelocateService) error

创建文件转移任务 [任务参数] [错误]

func (*SiteObj) FileSearch

搜索文件 [查询参数(keywords|image|video|audio|doc|tag)] [搜索结果,错误]

func (*SiteObj) FileSource

func (c *SiteObj) FileSource(s *explorer.ItemIDService) (*[]serializer.Sources, error)

取得文件外链 [文件列表] [外链,错误]

func (*SiteObj) FileThumb

func (c *SiteObj) FileThumb(id string) string

获取缩略图 (重定向) [文件id] [链接]

func (*SiteObj) FileUpdate

func (c *SiteObj) FileUpdate(id string, file []byte) error

更新文件 [文件id,文件内容] [错误]

func (*SiteObj) FileUploadDel

func (c *SiteObj) FileUploadDel(sid string) error

删除给定上传会话 [会话id] [错误]

func (*SiteObj) FileUploadDelAll

func (c *SiteObj) FileUploadDelAll() error

删除全部上传会话 [] [错误]

func (*SiteObj) FileUploadNew

创建上传会话 [文件信息] [上传凭证,错误]

func (*SiteObj) FileUploadPut

func (c *SiteObj) FileUploadPut(sid, index string, file []byte, mime string) error

文件上传 (本地) [会话id,分片数,文件,类型] [错误]

func (*SiteObj) ObjectCopy

func (c *SiteObj) ObjectCopy(s *explorer.ItemMoveService) error

复制对象 [文件列表] [错误]

func (*SiteObj) ObjectDel

func (c *SiteObj) ObjectDel(s *explorer.ItemIDService) error

删除对象 [文件列表] [错误]

func (*SiteObj) ObjectMov

func (c *SiteObj) ObjectMov(s *explorer.ItemMoveService) error

移动对象 [文件列表] [错误]

func (*SiteObj) ObjectProperty

func (c *SiteObj) ObjectProperty(q *explorer.ItemPropertyService) (*serializer.ObjectProps, error)

获取对象属性 [查询参数] [属性信息,错误]

func (*SiteObj) ObjectRename

func (c *SiteObj) ObjectRename(s *explorer.ItemRenameService) error

重命名对象 [文件列表] [错误]

func (*SiteObj) SdkInit

func (c *SiteObj) SdkInit() error

(SDK) 初始化站点数据 [] [错误]

func (*SiteObj) SdkLogin

func (c *SiteObj) SdkLogin() error

(SDK) 登录账号 [] [错误]

func (*SiteObj) SdkSolveCaptcha

func (c *SiteObj) SdkSolveCaptcha() (*string, error)

(SDK) 识别验证码 (仅支持默认版) [] [结果,错误]

func (*SiteObj) SdkUpload

func (c *SiteObj) SdkUpload(dir string, file *os.File, name string) error

(SDK) 上传文件 [上传目录,文件,上传名称] [错误]

func (*SiteObj) ShareArchive

func (c *SiteObj) ShareArchive(id string, s *share.ArchiveService) (*string, error)

归档打包下载 [分享id,打包参数] [下载链接,错误]

func (*SiteObj) ShareContent

func (c *SiteObj) ShareContent(id, path string) (string, error)

获取文本文件内容 [分享id,文件路径] [重定向链接,错误]

func (*SiteObj) ShareDel

func (c *SiteObj) ShareDel(id string) error

删除分享 [分享id] [错误]

func (*SiteObj) ShareDoc

func (c *SiteObj) ShareDoc(id, path string) (*serializer.DocPreviewSession, error)

取得Office文档预览地址 [分享id,文件路径] [预览链接,错误]

func (*SiteObj) ShareDownload

func (c *SiteObj) ShareDownload(id, path string) (*string, error)

创建文件下载会话 [分享id,文件路径] [下载链接,错误]

func (*SiteObj) ShareGet

列出我的分享 [查询参数] [分享列表,错误]

func (*SiteObj) ShareInfo

func (c *SiteObj) ShareInfo(id, password string) (*serializer.Share, error)

获取分享 [分享id,分享码?] [分享信息,错误]

func (*SiteObj) ShareList

func (c *SiteObj) ShareList(id, path string) (*serializer.ObjectList, error)

分享目录列文件 [分享id,文件路径] [目录列表,错误]

func (*SiteObj) ShareNew

func (c *SiteObj) ShareNew(s *share.ShareCreateService) (*string, error)

创建新分享 [分享参数] [分享链接,错误]

func (*SiteObj) SharePreview

func (c *SiteObj) SharePreview(id string) string

预览分享文件 [分享id] [重定向链接]

func (*SiteObj) ShareReadme

func (c *SiteObj) ShareReadme(id, path string) (string, error)

获取README文本文件内容 [分享id,文件路径] [下载链接,错误]

func (*SiteObj) ShareReport

func (c *SiteObj) ShareReport(id string, s *share.ShareReportService) error

举报分享 (Pro) [分享,举报参数] [错误]

func (*SiteObj) ShareSave

func (c *SiteObj) ShareSave(id string, s *share.Service) error

转存他人分享 (Pro) [分享id,转存参数] [错误]

func (*SiteObj) ShareSearch

func (c *SiteObj) ShareSearch(id, Type, keywords string) (*explorer.SearchResult, error)

分享目录搜索 [分享id,搜索方式,关键词] [搜索结果,错误]

func (*SiteObj) ShareSearchPub

func (c *SiteObj) ShareSearchPub(q *share.ShareListService) (*serializer.ShareList, error)

搜索公共分享 [搜索参数(page=1&order_by=created_at&order=DESC&keywords=test)] [搜索结果,错误]

func (*SiteObj) ShareThumb

func (c *SiteObj) ShareThumb(id, file, path string) (string, error)

获取缩略图 [分享id,文件名称,文件路径] [下载链接,错误]

func (*SiteObj) ShareUpd

func (c *SiteObj) ShareUpd(id string, s *share.ShareUpdateService) (*string, error)

更新分享属性 [分享id,修改属性(password|preview_enabled)] [结果,错误]

func (*SiteObj) SiteCaptcha

func (c *SiteObj) SiteCaptcha() (*string, error)

获取验证码 [] [base64编码后的图片(data:image/png;base64,),错误]

func (*SiteObj) SiteConfig

func (c *SiteObj) SiteConfig() (*serializer.SiteConfig, error)

站点全局配置 [] [配置信息,错误]

func (*SiteObj) SitePing

func (c *SiteObj) SitePing() (*string, error)

获取版本号 [] [版本号(3.8.3+1.1-plus),错误]

func (*SiteObj) SiteVol

func (c *SiteObj) SiteVol() (*serializer.VolResponse, error)

获取 VOL 密钥 (Pro) [] [VOL密钥,错误]

func (*SiteObj) TagDel

func (c *SiteObj) TagDel(id string) error

删除标签 [标签id] [错误]

func (*SiteObj) TagFilter

func (c *SiteObj) TagFilter(s *explorer.FilterTagCreateService) (*string, error)

创建文件分类标签 [标签参数] [标签id,错误]

func (c *SiteObj) TagLink(s *explorer.LinkTagCreateService) (*string, error)

创建目录快捷方式标签 [标签参数] [标签id,错误]

func (*SiteObj) User2FA

func (c *SiteObj) User2FA(s *user.Enable2FA) (*serializer.User, error)

用户2FA验证 [] [用户详情,错误]

func (*SiteObj) UserActivate

func (c *SiteObj) UserActivate(id string) (*string, error)

邮件激活 [验证码] [用户邮箱,错误]

func (*SiteObj) UserAuthn

func (c *SiteObj) UserAuthn(username string) (any, error)

WebAuthn登陆初始化 [用户名] [(外部资源),错误]

func (*SiteObj) UserAuthnFinish

func (c *SiteObj) UserAuthnFinish(username string) (*serializer.User, error)

WebAuthn登陆 [用户名] [用户详情,错误]

func (*SiteObj) UserAvatar

func (c *SiteObj) UserAvatar(id, size string) string

获取用户头像 [用户id,图片大小(l|s)] [重定向链接]

func (*SiteObj) UserMe

func (c *SiteObj) UserMe() (*serializer.User, error)

当前登录用户信息 [] [用户详情,错误]

func (*SiteObj) UserProfile

func (c *SiteObj) UserProfile(id string, q *share.ShareUserGetService) (*serializer.ShareList, error)

获取用户主页展示用分享 [用户id,查询参数(page=0&type=default)] [分享列表,错误]

func (*SiteObj) UserQQ

func (c *SiteObj) UserQQ() (*string, error)

初始化QQ登录 [] [登录页地址,错误]

func (*SiteObj) UserReg

func (c *SiteObj) UserReg(s *user.LoginInfo) error

用户注册 [用户信息] [错误]

func (*SiteObj) UserResetSend

func (c *SiteObj) UserResetSend(s *user.UserResetEmailService) error

发送密码重设邮件 [] []

func (*SiteObj) UserResetSubmit

func (c *SiteObj) UserResetSubmit(s *user.UserResetService) error

通过邮件里的链接重设密码 [] []

func (*SiteObj) UserSession

func (c *SiteObj) UserSession(s *user.LoginInfo) (*serializer.User, error)

用户登录 [登录凭证] [用户详情,错误]

func (*SiteObj) UserSessionDel

func (c *SiteObj) UserSessionDel() error

退出登录 [] [错误]

func (*SiteObj) UserSessionGen

func (c *SiteObj) UserSessionGen() (*string, error)

生成用于复制客户端会话的临时 URL,用于为移动应用程序添加帐户。 [] [链接,错误]

func (*SiteObj) UserSetting

func (c *SiteObj) UserSetting() (*user.Settings, error)

获取当前用户设定 [] [用户设定,错误]

func (*SiteObj) UserSetting2FA

func (c *SiteObj) UserSetting2FA() (*string, error)

获得二步验证初始化信息 [] [密钥,错误]

func (*SiteObj) UserSettingAvatar

func (c *SiteObj) UserSettingAvatar() error

设定为Gravatar头像 [] [错误]

func (*SiteObj) UserSettingAvatarUpd

func (c *SiteObj) UserSettingAvatarUpd(file []byte, name string) error

从文件上传头像 [文件,名称(akari.jpg)<扩展名非常重要>] [错误]

func (*SiteObj) UserSettingNodes

func (c *SiteObj) UserSettingNodes() (*[]serializer.NodeOptions, error)

获取用户可选节点 [] [离线下载节点列表,错误]

func (*SiteObj) UserSettingPolicies

func (c *SiteObj) UserSettingPolicies() (*[]serializer.PolicyOptions, error)

获取用户可选存储策略 (Pro) [] [存储策略列表,错误]

func (*SiteObj) UserSettingTasks

func (c *SiteObj) UserSettingTasks(page int) (*serializer.TaskList, error)

任务队列 [分页] [任务列表,错误]

func (*SiteObj) UserSettingUpd

func (c *SiteObj) UserSettingUpd(option string, s *user.UpdOption) error

更改用户设定 [服务(nick√|vip|qq|policy|homepage|password|2fa|authn|theme),设定] [错误]

func (*SiteObj) UserStorage

func (c *SiteObj) UserStorage() (*serializer.Storage, error)

存储信息 [] [存储信息,错误]

func (*SiteObj) VasOrderGet

func (c *SiteObj) VasOrderGet(id string) (*int, error)

查询订单状态 [订单id] [状态(models.Order*),错误]

func (*SiteObj) VasOrderNew

func (c *SiteObj) VasOrderNew(s *vas.CreateOrderService) (*payment.OrderCreateRes, error)

新建支付订单 [订单参数] [创建结果,错误]

func (*SiteObj) VasPack

func (c *SiteObj) VasPack() (*serializer.Quota, error)

获取容量包及配额信息 [] [信息,错误]

func (*SiteObj) VasProduct

func (c *SiteObj) VasProduct() (*serializer.ProductData, error)

获取商品信息,同时返回支付信息 [] [信息,错误]

func (*SiteObj) VasRedeemDo

func (c *SiteObj) VasRedeemDo(code string) error

执行兑换 [兑换码] [错误]

func (*SiteObj) VasRedeemGet

func (c *SiteObj) VasRedeemGet(code string) (*vas.RedeemData, error)

获取兑换码信息 [兑换码] [信息,错误]

func (*SiteObj) WebDavAccountsDel

func (c *SiteObj) WebDavAccountsDel(id string) error

删除账号 [账号id] [错误]

func (*SiteObj) WebDavAccountsGet

func (c *SiteObj) WebDavAccountsGet() (*setting.WebDAVAccountList, error)

获取账号信息 [] [账号列表,错误]

func (*SiteObj) WebDavAccountsNew

新建账号 [账号参数] [账户信息,错误]

func (*SiteObj) WebDavMountDel

func (c *SiteObj) WebDavMountDel(id string) error

删除目录挂载 [挂载id] [错误]

func (*SiteObj) WebDavMountNew

创建目录挂载 [挂载参数] [挂载信息,错误]

func (*SiteObj) WebDavUpd

更新账号可读性和是否使用代理服务 [更新参数] [结果(id×),错误]

type UserObj

type UserObj struct {
	Mail string // 邮箱(用户名)
	Pass string // 密码

	Cookie *http.Cookie
}

func NewUser

func NewUser(mail, pass string) *UserObj

Directories

Path Synopsis
pkg
service
vas

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL