| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- package tcb
- import (
- "fmt"
- "github.com/silenceper/wechat/util"
- )
- const (
- //获取文件上传链接
- uploadFilePathURL = "https://api.weixin.qq.com/tcb/uploadfile"
- //获取文件下载链接
- batchDownloadFileURL = "https://api.weixin.qq.com/tcb/batchdownloadfile"
- //删除文件链接
- batchDeleteFileURL = "https://api.weixin.qq.com/tcb/batchdeletefile"
- )
- //UploadFileReq 上传文件请求值
- type UploadFileReq struct {
- Env string `json:"env,omitempty"`
- Path string `json:"path,omitempty"`
- }
- //UploadFileRes 上传文件返回结果
- type UploadFileRes struct {
- util.CommonError
- URL string `json:"url"` //上传url
- Token string `json:"token"` //token
- Authorization string `json:"authorization"` //authorization
- FileID string `json:"file_id"` //文件ID
- CosFileID string `json:"cos_file_id"` //cos文件ID
- }
- //BatchDownloadFileReq 上传文件请求值
- type BatchDownloadFileReq struct {
- Env string `json:"env,omitempty"`
- FileList []*DownloadFile `json:"file_list,omitempty"`
- }
- //DownloadFile 文件信息
- type DownloadFile struct {
- FileID string `json:"fileid"` //文件ID
- MaxAge int64 `json:"max_age"` //下载链接有效期
- }
- //BatchDownloadFileRes 上传文件返回结果
- type BatchDownloadFileRes struct {
- util.CommonError
- FileList []struct {
- FileID string `json:"file_id"` //文件ID
- DownloadURL string `json:"download_url"` //下载链接
- Status int64 `json:"status"` //状态码
- ErrMsg string `json:"errmsg"` //该文件错误信息
- } `json:"file_list"`
- }
- //BatchDeleteFileReq 批量删除文件请求参数
- type BatchDeleteFileReq struct {
- Env string `json:"env,omitempty"`
- FileIDList []string `json:"fileid_list,omitempty"`
- }
- //BatchDeleteFileRes 批量删除文件返回结果
- type BatchDeleteFileRes struct {
- util.CommonError
- DeleteList []struct {
- FileID string `json:"fileid"`
- Status int64 `json:"status"`
- ErrMsg string `json:"errmsg"`
- } `json:"delete_list"`
- }
- //UploadFile 上传文件
- //reference:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-http-api/storage/uploadFile.html
- func (tcb *Tcb) UploadFile(env, path string) (*UploadFileRes, error) {
- accessToken, err := tcb.GetAccessToken()
- if err != nil {
- return nil, err
- }
- uri := fmt.Sprintf("%s?access_token=%s", uploadFilePathURL, accessToken)
- req := &UploadFileReq{
- Env: env,
- Path: path,
- }
- response, err := util.PostJSON(uri, req)
- if err != nil {
- return nil, err
- }
- uploadFileRes := &UploadFileRes{}
- err = util.DecodeWithError(response, uploadFileRes, "UploadFile")
- return uploadFileRes, err
- }
- //BatchDownloadFile 获取文件下载链接
- //reference:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-http-api/storage/batchDownloadFile.html
- func (tcb *Tcb) BatchDownloadFile(env string, fileList []*DownloadFile) (*BatchDownloadFileRes, error) {
- accessToken, err := tcb.GetAccessToken()
- if err != nil {
- return nil, err
- }
- uri := fmt.Sprintf("%s?access_token=%s", batchDownloadFileURL, accessToken)
- req := &BatchDownloadFileReq{
- Env: env,
- FileList: fileList,
- }
- response, err := util.PostJSON(uri, req)
- if err != nil {
- return nil, err
- }
- batchDownloadFileRes := &BatchDownloadFileRes{}
- err = util.DecodeWithError(response, batchDownloadFileRes, "BatchDownloadFile")
- return batchDownloadFileRes, err
- }
- //BatchDeleteFile 批量删除文件
- //reference:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-http-api/storage/batchDeleteFile.html
- func (tcb *Tcb) BatchDeleteFile(env string, fileIDList []string) (*BatchDeleteFileRes, error) {
- accessToken, err := tcb.GetAccessToken()
- if err != nil {
- return nil, err
- }
- uri := fmt.Sprintf("%s?access_token=%s", batchDeleteFileURL, accessToken)
- req := &BatchDeleteFileReq{
- Env: env,
- FileIDList: fileIDList,
- }
- response, err := util.PostJSON(uri, req)
- if err != nil {
- return nil, err
- }
- batchDeleteFileRes := &BatchDeleteFileRes{}
- err = util.DecodeWithError(response, batchDeleteFileRes, "BatchDeleteFile")
- return batchDeleteFileRes, nil
- }
|