Skip to content

Commit

Permalink
修复秒传返回的request_id是科学计数法数字的问题
Browse files Browse the repository at this point in the history
  • Loading branch information
jsyzchen committed Jul 26, 2021
1 parent 1b37ede commit 7cac826
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 9 deletions.
30 changes: 22 additions & 8 deletions file/upload.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (
"encoding/json"
"errors"
"fmt"
"github.com/bitly/go-simplejson"
"github.com/jsyzchen/pan/account"
"github.com/jsyzchen/pan/conf"
fileUtil "github.com/jsyzchen/pan/utils/file"
Expand Down Expand Up @@ -37,7 +38,7 @@ type PreCreateResponse struct {
Path string `json:"path"`
ReturnType int `json:"return_type"`
BlockList []int `json:"block_list"`
Info UploadResponse
Info UploadResponse `json:"info"`
}

type SuperFile2UploadResponse struct {
Expand Down Expand Up @@ -183,11 +184,11 @@ func (u *Uploader) PreCreate() (PreCreateResponse, error) {
fileSize := fileInfo.Size
fileMd5 := fileInfo.Md5

//sliceMd5, err := u.getSliceMd5()
//if err != nil {
// log.Println("getSliceMd5 failed, err:", err)
// return ret, err
//}
sliceMd5, err := u.getSliceMd5()
if err != nil {
log.Println("getSliceMd5 failed, err:", err)
return ret, err
}

blockList, err := u.getBlockList()
if err != nil {
Expand All @@ -209,7 +210,7 @@ func (u *Uploader) PreCreate() (PreCreateResponse, error) {
v.Add("rtype", "1")// 1 为只要path冲突即重命名
v.Add("block_list", blockListStr)
v.Add("content-md5", fileMd5)
//v.Add("slice-md5", sliceMd5)
v.Add("slice-md5", sliceMd5)
body := v.Encode()

requestUrl := conf.OpenApiDomain + PreCreateUri + "&access_token=" + u.AccessToken
Expand All @@ -220,7 +221,20 @@ func (u *Uploader) PreCreate() (PreCreateResponse, error) {
return ret, err
}

if err := json.Unmarshal(resp.Body, &ret); err != nil {
respBody := resp.Body
if js, err := simplejson.NewJson(respBody); err == nil {
if info, isExist := js.CheckGet("info"); isExist {//秒传返回的request_id有可能是科学计数法,这里将它统一转成uint64
//{"return_type":2,"errno":0,"info":{"size":16877488,"category":4,"fs_id":714504460793248,"request_id":1.821160071156e+17,"path":"\/apps\/\u4e66\u68af\/easy_20210726_163824.pptx","isdir":0,"mtime":1627288705,"ctime":1627288705,"md5":"44090321ds594263c8818d7c398e5017"},"request_id":182116007115598010}
info.Set("request_id", uint64(info.Get("request_id").MustFloat64()))
if respBody, err = js.Encode(); err != nil {
log.Println("simplejson Encode failed, err:", err)
return ret, err
}
}
}

if err := json.Unmarshal(respBody, &ret); err != nil {
log.Println("json.Unmarshal failed, err:", err)
return ret, err
}

Expand Down
5 changes: 4 additions & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,7 @@ module github.com/jsyzchen/pan

go 1.13

require github.com/syyongx/php2go v0.9.4
require (
github.com/bitly/go-simplejson v0.5.0
github.com/syyongx/php2go v0.9.4
)

0 comments on commit 7cac826

Please sign in to comment.