Documentation ¶
Index ¶
- Constants
- Variables
- func AesECBEncrypt(data, key string) string
- func BoolToNumber(b bool) int
- func IF[V any](o bool, t V, f V) V
- func MustParseTime(str string) *time.Time
- func MustString(str string, err error) string
- func PKCS7Padding(ciphertext []byte, blockSize int) []byte
- func ParseHttpHeader(str string) map[string]string
- func RsaEncrypt(publicKey, origData string) string
- type Addition
- type AppSessionResp
- type BatchTaskConflictTaskInfoResp
- type BatchTaskInfo
- type BatchTaskStateResp
- type Cloud189File
- func (c *Cloud189File) CreateTime() time.Time
- func (c *Cloud189File) GetHash() utils.HashInfo
- func (c *Cloud189File) GetID() string
- func (c *Cloud189File) GetName() string
- func (c *Cloud189File) GetPath() string
- func (c *Cloud189File) GetSize() int64
- func (c *Cloud189File) IsDir() bool
- func (c *Cloud189File) ModTime() time.Time
- func (c *Cloud189File) Thumb() string
- type Cloud189FilesResp
- type Cloud189Folder
- func (c *Cloud189Folder) CreateTime() time.Time
- func (c *Cloud189Folder) GetHash() utils.HashInfo
- func (c *Cloud189Folder) GetID() string
- func (c *Cloud189Folder) GetName() string
- func (c *Cloud189Folder) GetPath() string
- func (c *Cloud189Folder) GetSize() int64
- func (c *Cloud189Folder) IsDir() bool
- func (c *Cloud189Folder) ModTime() time.Time
- type Cloud189PC
- func (y *Cloud189PC) CheckBatchTask(aType string, taskID string) (*BatchTaskStateResp, error)
- func (y *Cloud189PC) Config() driver.Config
- func (y *Cloud189PC) Copy(ctx context.Context, srcObj, dstDir model.Obj) error
- func (y *Cloud189PC) CreateBatchTask(aType string, familyID string, targetFolderId string, other map[string]string, ...) (*CreateBatchTaskResp, error)
- func (y *Cloud189PC) Drop(ctx context.Context) error
- func (y *Cloud189PC) EncryptParams(params Params, isFamily bool) string
- func (y *Cloud189PC) FastUpload(ctx context.Context, dstDir model.Obj, file model.FileStreamer, ...) (model.Obj, error)
- func (y *Cloud189PC) GetAddition() driver.Additional
- func (y *Cloud189PC) GetConflictTaskInfo(aType string, taskID string) (*BatchTaskConflictTaskInfoResp, error)
- func (y *Cloud189PC) GetMultiUploadUrls(ctx context.Context, isFamily bool, uploadFileId string, partInfo ...string) ([]UploadUrlInfo, error)
- 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 (y *Cloud189PC) List(ctx context.Context, dir model.Obj, args model.ListArgs) ([]model.Obj, error)
- func (y *Cloud189PC) MakeDir(ctx context.Context, parentDir model.Obj, dirName string) (model.Obj, error)
- func (y *Cloud189PC) ManageBatchTask(aType string, taskID string, targetFolderId string, taskInfos ...BatchTaskInfo) error
- func (y *Cloud189PC) Move(ctx context.Context, srcObj, dstDir model.Obj) (model.Obj, error)
- func (y *Cloud189PC) OldUpload(ctx context.Context, dstDir model.Obj, file model.FileStreamer, ...) (model.Obj, error)
- func (y *Cloud189PC) OldUploadCommit(ctx context.Context, fileCommitUrl string, uploadFileID int64, isFamily bool, ...) (model.Obj, error)
- func (y *Cloud189PC) OldUploadCreate(ctx context.Context, parentID string, fileMd5, fileName, fileSize string, ...) (*CreateUploadFileResp, error)
- func (y *Cloud189PC) Put(ctx context.Context, dstDir model.Obj, stream model.FileStreamer, ...) (newObj model.Obj, err error)
- func (y *Cloud189PC) RapidUpload(ctx context.Context, dstDir model.Obj, stream model.FileStreamer, ...) (model.Obj, error)
- func (y *Cloud189PC) Remove(ctx context.Context, obj model.Obj) error
- func (y *Cloud189PC) Rename(ctx context.Context, srcObj model.Obj, newName string) (model.Obj, error)
- func (y *Cloud189PC) SaveFamilyFileToPersonCloud(ctx context.Context, familyId string, srcObj, dstDir model.Obj, overwrite bool) error
- func (y *Cloud189PC) SignatureHeader(url, method, params string, isFamily bool) map[string]string
- func (y *Cloud189PC) StreamUpload(ctx context.Context, dstDir model.Obj, file model.FileStreamer, ...) (model.Obj, error)
- func (y *Cloud189PC) WaitBatchTask(aType string, taskID string, t time.Duration) error
- type CommitMultiUploadFileResp
- type CreateBatchTaskResp
- type CreateUploadFileResp
- type EncryptConfResp
- type FamilyInfoListResp
- type FamilyInfoResp
- type GetUploadFileStatusResp
- type InitMultiUploadResp
- type LoginParam
- type LoginResp
- type OldCommitUploadFileResp
- type Params
- type RespErr
- type String
- type Time
- type UploadProgress
- type UploadUrlInfo
- type UploadUrlsData
- type UploadUrlsResp
- type UserSessionResp
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 BoolToNumber ¶
func MustParseTime ¶
func MustString ¶
func PKCS7Padding ¶
func ParseHttpHeader ¶
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
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) 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) 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 (*Cloud189PC) ManageBatchTask ¶ added in v3.34.0
func (y *Cloud189PC) ManageBatchTask(aType string, taskID string, targetFolderId string, taskInfos ...BatchTaskInfo) 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 (*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
等待任务完成
type CommitMultiUploadFileResp ¶ added in v3.25.0
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 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 OldCommitUploadFileResp ¶ added in v3.25.0
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"` }
居然有四种返回方式
type String ¶ added in v3.25.0
type String string
func (*String) UnmarshalJSON ¶ added in v3.25.0
func (*String) UnmarshalXML ¶ added in v3.25.0
type Time ¶ added in v3.25.0
func (*Time) UnmarshalJSON ¶ added in v3.25.0
func (*Time) UnmarshalXML ¶ added in v3.25.0
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 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返回
Click to show internal directories.
Click to hide internal directories.