_189pc

package
v3.37.0 Latest Latest
Warning

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

Go to latest
Published: Sep 8, 2024 License: AGPL-3.0 Imports: 40 Imported by: 1

Documentation

Index

Constants

View Source
const (
	ACCOUNT_TYPE = "02"
	APP_ID       = "8025431004"
	CLIENT_TYPE  = "10020"
	VERSION      = "6.2"

	WEB_URL    = "https://cloud.189.cn"
	AUTH_URL   = "https://open.e.189.cn"
	API_URL    = "https://api.cloud.189.cn"
	UPLOAD_URL = "https://upload.cloud.189.cn"

	RETURN_URL = "https://m.cloud.189.cn/zhuanti/2020/loginErrorPc/index.html"

	PC  = "TELEPC"
	MAC = "TELEMAC"

	CHANNEL_ID = "web_cloud.189.cn"
)

Variables

View Source
var ErrIsConflict = errors.New("there is a conflict with the target object")

Functions

func AesECBEncrypt

func AesECBEncrypt(data, key string) string

aes 加密params

func BoolToNumber

func BoolToNumber(b bool) int

func IF added in v3.34.0

func IF[V any](o bool, t V, f V) V

func MustParseTime

func MustParseTime(str string) *time.Time

func MustString

func MustString(str string, err error) string

func PKCS7Padding

func PKCS7Padding(ciphertext []byte, blockSize int) []byte

func ParseHttpHeader

func ParseHttpHeader(str string) map[string]string

func RsaEncrypt

func RsaEncrypt(publicKey, origData string) string

RAS 加密用户名密码

Types

type Addition

type Addition struct {
	Username string `json:"username" required:"true"`
	Password string `json:"password" required:"true"`
	VCode    string `json:"validate_code"`
	driver.RootID
	OrderBy        string `json:"order_by" type:"select" options:"filename,filesize,lastOpTime" default:"filename"`
	OrderDirection string `json:"order_direction" type:"select" options:"asc,desc" default:"asc"`
	Type           string `json:"type" type:"select" options:"personal,family" default:"personal"`
	FamilyID       string `json:"family_id"`
	UploadMethod   string `json:"upload_method" type:"select" options:"stream,rapid,old" default:"stream"`
	UploadThread   string `json:"upload_thread" default:"3" help:"1<=thread<=32"`
	FamilyTransfer bool   `json:"family_transfer"`
	RapidUpload    bool   `json:"rapid_upload"`
	NoUseOcr       bool   `json:"no_use_ocr"`
}

type AppSessionResp

type AppSessionResp struct {
	UserSessionResp

	IsSaveName string `json:"isSaveName"`

	// 会话刷新Token
	AccessToken string `json:"accessToken"`
	//Token刷新
	RefreshToken string `json:"refreshToken"`
}

登录返回

type BatchTaskConflictTaskInfoResp added in v3.34.0

type BatchTaskConflictTaskInfoResp struct {
	SessionKey     string `json:"sessionKey"`
	TargetFolderID int    `json:"targetFolderId"`
	TaskID         string `json:"taskId"`
	TaskInfos      []BatchTaskInfo
	TaskType       int `json:"taskType"`
}

type BatchTaskInfo

type BatchTaskInfo struct {
	// FileId 文件ID
	FileId string `json:"fileId"`
	// FileName 文件名
	FileName string `json:"fileName"`
	// IsFolder 是否是文件夹,0-否,1-是
	IsFolder int `json:"isFolder"`
	// SrcParentId 文件所在父目录ID
	SrcParentId string `json:"srcParentId,omitempty"`

	/* 冲突管理 */
	// 1 -> 跳过 2 -> 保留 3 -> 覆盖
	DealWay    int `json:"dealWay,omitempty"`
	IsConflict int `json:"isConflict,omitempty"`
}

TaskInfo 任务信息

type BatchTaskStateResp added in v3.25.0

type BatchTaskStateResp struct {
	FailedCount         int     `json:"failedCount"`
	Process             int     `json:"process"`
	SkipCount           int     `json:"skipCount"`
	SubTaskCount        int     `json:"subTaskCount"`
	SuccessedCount      int     `json:"successedCount"`
	SuccessedFileIDList []int64 `json:"successedFileIdList"`
	TaskID              string  `json:"taskId"`
	TaskStatus          int     `json:"taskStatus"` //1 初始化 2 存在冲突 3 执行中,4 完成
}

type Cloud189File

type Cloud189File struct {
	ID   String `json:"id"`
	Name string `json:"name"`
	Size int64  `json:"size"`
	Md5  string `json:"md5"`

	LastOpTime Time `json:"lastOpTime"`
	CreateDate Time `json:"createDate"`
	Icon       struct {
		//iconOption 5
		SmallUrl string `json:"smallUrl"`
		LargeUrl string `json:"largeUrl"`

		// iconOption 10
		Max600    string `json:"max600"`
		MediumURL string `json:"mediumUrl"`
	} `json:"icon"`
}

文件部分 文件

func (*Cloud189File) CreateTime added in v3.27.0

func (c *Cloud189File) CreateTime() time.Time

func (*Cloud189File) GetHash added in v3.27.0

func (c *Cloud189File) GetHash() utils.HashInfo

func (*Cloud189File) GetID

func (c *Cloud189File) GetID() string

func (*Cloud189File) GetName

func (c *Cloud189File) GetName() string

func (*Cloud189File) GetPath

func (c *Cloud189File) GetPath() string

func (*Cloud189File) GetSize

func (c *Cloud189File) GetSize() int64

func (*Cloud189File) IsDir

func (c *Cloud189File) IsDir() bool

func (*Cloud189File) ModTime

func (c *Cloud189File) ModTime() time.Time

func (*Cloud189File) Thumb

func (c *Cloud189File) Thumb() string

type Cloud189FilesResp

type Cloud189FilesResp struct {
	//ResCode    int    `json:"res_code"`
	//ResMessage string `json:"res_message"`
	FileListAO struct {
		Count      int              `json:"count"`
		FileList   []Cloud189File   `json:"fileList"`
		FolderList []Cloud189Folder `json:"folderList"`
	} `json:"fileListAO"`
}

type Cloud189Folder

type Cloud189Folder struct {
	ID       String `json:"id"`
	ParentID int64  `json:"parentId"`
	Name     string `json:"name"`

	LastOpTime Time `json:"lastOpTime"`
	CreateDate Time `json:"createDate"`
}

文件夹

func (*Cloud189Folder) CreateTime added in v3.27.0

func (c *Cloud189Folder) CreateTime() time.Time

func (*Cloud189Folder) GetHash added in v3.27.0

func (c *Cloud189Folder) GetHash() utils.HashInfo

func (*Cloud189Folder) GetID

func (c *Cloud189Folder) GetID() string

func (*Cloud189Folder) GetName

func (c *Cloud189Folder) GetName() string

func (*Cloud189Folder) GetPath

func (c *Cloud189Folder) GetPath() string

func (*Cloud189Folder) GetSize

func (c *Cloud189Folder) GetSize() int64

func (*Cloud189Folder) IsDir

func (c *Cloud189Folder) IsDir() bool

func (*Cloud189Folder) ModTime

func (c *Cloud189Folder) ModTime() time.Time

type Cloud189PC added in v3.7.1

type Cloud189PC struct {
	model.Storage
	Addition
	// contains filtered or unexported fields
}

func (*Cloud189PC) CheckBatchTask added in v3.25.0

func (y *Cloud189PC) CheckBatchTask(aType string, taskID string) (*BatchTaskStateResp, error)

检测任务状态

func (*Cloud189PC) Config added in v3.7.1

func (y *Cloud189PC) Config() driver.Config

func (*Cloud189PC) Copy added in v3.7.1

func (y *Cloud189PC) Copy(ctx context.Context, srcObj, dstDir model.Obj) error

func (*Cloud189PC) CreateBatchTask added in v3.34.0

func (y *Cloud189PC) CreateBatchTask(aType string, familyID string, targetFolderId string, other map[string]string, taskInfos ...BatchTaskInfo) (*CreateBatchTaskResp, error)

func (*Cloud189PC) Drop added in v3.7.1

func (y *Cloud189PC) Drop(ctx context.Context) error

func (*Cloud189PC) EncryptParams added in v3.18.0

func (y *Cloud189PC) EncryptParams(params Params, isFamily bool) string

func (*Cloud189PC) FastUpload added in v3.7.1

func (y *Cloud189PC) FastUpload(ctx context.Context, dstDir model.Obj, file model.FileStreamer, up driver.UpdateProgress, isFamily bool, overwrite bool) (model.Obj, error)

快传

func (*Cloud189PC) GetAddition added in v3.7.1

func (y *Cloud189PC) GetAddition() driver.Additional

func (*Cloud189PC) GetConflictTaskInfo added in v3.34.0

func (y *Cloud189PC) GetConflictTaskInfo(aType string, taskID string) (*BatchTaskConflictTaskInfoResp, error)

获取冲突的任务信息

func (*Cloud189PC) GetMultiUploadUrls added in v3.26.0

func (y *Cloud189PC) GetMultiUploadUrls(ctx context.Context, isFamily bool, uploadFileId string, partInfo ...string) ([]UploadUrlInfo, error)

获取上传切片信息 对http body有大小限制,分片信息太多会出错

func (*Cloud189PC) Init added in v3.7.1

func (y *Cloud189PC) Init(ctx context.Context) (err error)
func (y *Cloud189PC) Link(ctx context.Context, file model.Obj, args model.LinkArgs) (*model.Link, error)

func (*Cloud189PC) List added in v3.7.1

func (y *Cloud189PC) List(ctx context.Context, dir model.Obj, args model.ListArgs) ([]model.Obj, error)

func (*Cloud189PC) MakeDir added in v3.7.1

func (y *Cloud189PC) MakeDir(ctx context.Context, parentDir model.Obj, dirName string) (model.Obj, error)

func (*Cloud189PC) ManageBatchTask added in v3.34.0

func (y *Cloud189PC) ManageBatchTask(aType string, taskID string, targetFolderId string, taskInfos ...BatchTaskInfo) error

处理冲突

func (*Cloud189PC) Move added in v3.7.1

func (y *Cloud189PC) Move(ctx context.Context, srcObj, dstDir model.Obj) (model.Obj, error)

func (*Cloud189PC) OldUpload added in v3.18.0

func (y *Cloud189PC) OldUpload(ctx context.Context, dstDir model.Obj, file model.FileStreamer, up driver.UpdateProgress, isFamily bool, overwrite bool) (model.Obj, error)

旧版本上传,家庭云不支持覆盖

func (*Cloud189PC) OldUploadCommit added in v3.28.0

func (y *Cloud189PC) OldUploadCommit(ctx context.Context, fileCommitUrl string, uploadFileID int64, isFamily bool, overwrite bool) (model.Obj, error)

提交上传文件

func (*Cloud189PC) OldUploadCreate added in v3.28.0

func (y *Cloud189PC) OldUploadCreate(ctx context.Context, parentID string, fileMd5, fileName, fileSize string, isFamily bool) (*CreateUploadFileResp, error)

创建上传会话

func (*Cloud189PC) Put added in v3.7.1

func (y *Cloud189PC) Put(ctx context.Context, dstDir model.Obj, stream model.FileStreamer, up driver.UpdateProgress) (newObj model.Obj, err error)

func (*Cloud189PC) RapidUpload added in v3.28.0

func (y *Cloud189PC) RapidUpload(ctx context.Context, dstDir model.Obj, stream model.FileStreamer, isFamily bool, overwrite bool) (model.Obj, error)

func (*Cloud189PC) Remove added in v3.7.1

func (y *Cloud189PC) Remove(ctx context.Context, obj model.Obj) error

func (*Cloud189PC) Rename added in v3.7.1

func (y *Cloud189PC) Rename(ctx context.Context, srcObj model.Obj, newName string) (model.Obj, error)

func (*Cloud189PC) SaveFamilyFileToPersonCloud added in v3.34.0

func (y *Cloud189PC) SaveFamilyFileToPersonCloud(ctx context.Context, familyId string, srcObj, dstDir model.Obj, overwrite bool) error

保存家庭云中的文件到个人云

func (*Cloud189PC) SignatureHeader added in v3.18.0

func (y *Cloud189PC) SignatureHeader(url, method, params string, isFamily bool) map[string]string

func (*Cloud189PC) StreamUpload added in v3.25.0

func (y *Cloud189PC) StreamUpload(ctx context.Context, dstDir model.Obj, file model.FileStreamer, up driver.UpdateProgress, isFamily bool, overwrite bool) (model.Obj, error)

普通上传 无法上传大小为0的文件

func (*Cloud189PC) WaitBatchTask added in v3.25.0

func (y *Cloud189PC) WaitBatchTask(aType string, taskID string, t time.Duration) error

等待任务完成

type CommitMultiUploadFileResp added in v3.25.0

type CommitMultiUploadFileResp struct {
	File struct {
		UserFileID String `json:"userFileId"`
		FileName   string `json:"fileName"`
		FileSize   int64  `json:"fileSize"`
		FileMd5    string `json:"fileMd5"`
		CreateDate Time   `json:"createDate"`
	} `json:"file"`
}

type CreateBatchTaskResp added in v3.25.0

type CreateBatchTaskResp struct {
	TaskID string `json:"taskId"`
}

type CreateUploadFileResp added in v3.18.0

type CreateUploadFileResp struct {
	// 上传文件请求ID
	UploadFileId int64 `json:"uploadFileId"`
	// 上传文件数据的URL路径
	FileUploadUrl string `json:"fileUploadUrl"`
	// 上传文件完成后确认路径
	FileCommitUrl string `json:"fileCommitUrl"`
	// 文件是否已存在云盘中,0-未存在,1-已存在
	FileDataExists int `json:"fileDataExists"`
}

第二种上传方式

type EncryptConfResp

type EncryptConfResp struct {
	Result int `json:"result"`
	Data   struct {
		UpSmsOn   string `json:"upSmsOn"`
		Pre       string `json:"pre"`
		PreDomain string `json:"preDomain"`
		PubKey    string `json:"pubKey"`
	} `json:"data"`
}

登陆加密相关

type FamilyInfoListResp

type FamilyInfoListResp struct {
	FamilyInfoResp []FamilyInfoResp `json:"familyInfoResp"`
}

家庭云账户

type FamilyInfoResp

type FamilyInfoResp struct {
	Count      int    `json:"count"`
	CreateTime string `json:"createTime"`
	FamilyID   int64  `json:"familyId"`
	RemarkName string `json:"remarkName"`
	Type       int    `json:"type"`
	UseFlag    int    `json:"useFlag"`
	UserRole   int    `json:"userRole"`
}

type GetUploadFileStatusResp added in v3.18.0

type GetUploadFileStatusResp struct {
	CreateUploadFileResp

	// 已上传的大小
	DataSize int64 `json:"dataSize"`
	Size     int64 `json:"size"`
}

func (*GetUploadFileStatusResp) GetSize added in v3.18.0

func (r *GetUploadFileStatusResp) GetSize() int64

type InitMultiUploadResp

type InitMultiUploadResp struct {
	//Code string `json:"code"`
	Data struct {
		UploadType     int    `json:"uploadType"`
		UploadHost     string `json:"uploadHost"`
		UploadFileID   string `json:"uploadFileId"`
		FileDataExists int    `json:"fileDataExists"`
	} `json:"data"`
}

上传部分

type LoginParam

type LoginParam struct {
	// 加密后的用户名和密码
	RsaUsername string
	RsaPassword string

	// 请求头参数
	Lt    string
	ReqId string

	// 表单参数
	ParamId string

	// 验证码
	CaptchaToken string
	// contains filtered or unexported fields
}

登陆需要的参数

type LoginResp

type LoginResp struct {
	Msg    string `json:"msg"`
	Result int    `json:"result"`
	ToUrl  string `json:"toUrl"`
}

type OldCommitUploadFileResp added in v3.25.0

type OldCommitUploadFileResp struct {
	XMLName    xml.Name `xml:"file"`
	ID         String   `xml:"id"`
	Name       string   `xml:"name"`
	Size       int64    `xml:"size"`
	Md5        string   `xml:"md5"`
	CreateDate Time     `xml:"createDate"`
}

type Params

type Params map[string]string

query 加密参数

func (Params) Encode

func (p Params) Encode() string

func (Params) Set

func (p Params) Set(k, v string)

type RespErr

type RespErr struct {
	ResCode    any    `json:"res_code"` // int or string
	ResMessage string `json:"res_message"`

	Error_ string `json:"error"`

	XMLName xml.Name `xml:"error"`
	Code    string   `json:"code" xml:"code"`
	Message string   `json:"message" xml:"message"`
	Msg     string   `json:"msg"`

	ErrorCode string `json:"errorCode"`
	ErrorMsg  string `json:"errorMsg"`
}

居然有四种返回方式

func (*RespErr) Error added in v3.18.0

func (e *RespErr) Error() string

func (*RespErr) HasError added in v3.18.0

func (e *RespErr) HasError() bool

type String added in v3.25.0

type String string

func (*String) Unmarshal added in v3.25.0

func (s *String) Unmarshal(b []byte) error

func (*String) UnmarshalJSON added in v3.25.0

func (t *String) UnmarshalJSON(b []byte) error

func (*String) UnmarshalXML added in v3.25.0

func (t *String) UnmarshalXML(e *xml.Decoder, ee xml.StartElement) error

type Time added in v3.25.0

type Time time.Time

func (*Time) Unmarshal added in v3.25.0

func (t *Time) Unmarshal(b []byte) error

func (*Time) UnmarshalJSON added in v3.25.0

func (t *Time) UnmarshalJSON(b []byte) error

func (*Time) UnmarshalXML added in v3.25.0

func (t *Time) UnmarshalXML(e *xml.Decoder, ee xml.StartElement) error

type UploadProgress added in v3.26.0

type UploadProgress struct {
	UploadInfo  InitMultiUploadResp
	UploadParts []string
}

type UploadUrlInfo added in v3.26.0

type UploadUrlInfo struct {
	PartNumber int
	Headers    map[string]string
	UploadUrlsData
}

type UploadUrlsData added in v3.26.0

type UploadUrlsData struct {
	RequestURL    string `json:"requestURL"`
	RequestHeader string `json:"requestHeader"`
}

type UploadUrlsResp

type UploadUrlsResp struct {
	Code string                    `json:"code"`
	Data map[string]UploadUrlsData `json:"uploadUrls"`
}

type UserSessionResp

type UserSessionResp struct {
	ResCode    int    `json:"res_code"`
	ResMessage string `json:"res_message"`

	LoginName string `json:"loginName"`

	KeepAlive       int `json:"keepAlive"`
	GetFileDiffSpan int `json:"getFileDiffSpan"`
	GetUserInfoSpan int `json:"getUserInfoSpan"`

	// 个人云
	SessionKey    string `json:"sessionKey"`
	SessionSecret string `json:"sessionSecret"`
	// 家庭云
	FamilySessionKey    string `json:"familySessionKey"`
	FamilySessionSecret string `json:"familySessionSecret"`
}

刷新session返回

Jump to

Keyboard shortcuts

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