diff --git a/internal/file/uploader/multiuploader.go b/internal/file/uploader/multiuploader.go index c886cdd..f71f476 100644 --- a/internal/file/uploader/multiuploader.go +++ b/internal/file/uploader/multiuploader.go @@ -18,6 +18,7 @@ import ( "github.com/tickstep/aliyunpan-api/aliyunpan" "github.com/tickstep/aliyunpan/internal/utils" "github.com/tickstep/library-go/converter" + "github.com/tickstep/library-go/logger" "github.com/tickstep/library-go/requester" "github.com/tickstep/library-go/requester/rio" "github.com/tickstep/library-go/requester/rio/speeds" @@ -136,13 +137,13 @@ func (muer *MultiUploader) Execute() error { // 分配任务 if muer.instanceState != nil { muer.workers = muer.getWorkerListByInstanceState(muer.instanceState) - uploaderVerbose.Infof("upload task CREATED from instance state\n") + logger.Verboseln("upload task CREATED from instance state\n") } else { muer.workers = muer.getWorkerListByInstanceState(&InstanceState{ BlockList: SplitBlock(muer.file.Len(), muer.config.BlockSize), }) - uploaderVerbose.Infof("upload task CREATED: block size: %d, num: %d\n", muer.config.BlockSize, len(muer.workers)) + logger.Verboseln("upload task CREATED: block size: %d, num: %d\n", muer.config.BlockSize, len(muer.workers)) } // 开始上传 diff --git a/internal/file/uploader/multiworker.go b/internal/file/uploader/multiworker.go index 220a7ba..1c29ba7 100644 --- a/internal/file/uploader/multiworker.go +++ b/internal/file/uploader/multiworker.go @@ -17,6 +17,7 @@ import ( "context" "github.com/oleiade/lane" "github.com/tickstep/aliyunpan/internal/waitgroup" + "github.com/tickstep/library-go/logger" "github.com/tickstep/library-go/requester" "os" "strconv" @@ -88,7 +89,7 @@ func (muer *MultiUploader) upload() (uperr error) { ) go func() { if !wer.uploadDone { - uploaderVerbose.Info("begin to upload part: " + strconv.Itoa(wer.id)) + logger.Verboseln("begin to upload part: " + strconv.Itoa(wer.id)) uploadDone, terr = muer.multiUpload.UploadFile(ctx, int(wer.id), wer.partOffset, wer.splitUnit.Range().End, wer.splitUnit, uploadClient) } else { uploadDone = true @@ -101,10 +102,11 @@ func (muer *MultiUploader) upload() (uperr error) { return case <-doneChan: // continue - uploaderVerbose.Info("multiUpload worker upload file done") + logger.Verboseln("multiUpload worker upload file done") } cancel() if terr != nil { + logger.Verboseln("upload file part err: %+v", terr) if me, ok := terr.(*MultiError); ok { if me.Terminated { // 终止 muer.closeCanceledOnce.Do(func() { // 只关闭一次 @@ -113,7 +115,7 @@ func (muer *MultiUploader) upload() (uperr error) { uperr = me.Err return } else if me.NeedStartOver { - uploaderVerbose.Warnf("upload start over: %d\n", wer.id) + logger.Verboseln("upload start over: %d\n", wer.id) // 从头开始上传 muer.closeCanceledOnce.Do(func() { // 只关闭一次 close(muer.canceled) @@ -123,9 +125,9 @@ func (muer *MultiUploader) upload() (uperr error) { } } - uploaderVerbose.Warnf("upload err: %s, id: %d\n", terr, wer.id) + logger.Verboseln("upload err: %s, id: %d\n", terr, wer.id) wer.splitUnit.Seek(0, os.SEEK_SET) - uploadDeque.Append(wer) + uploadDeque.Prepend(wer) // 放回上传队列首位 return } wer.uploadDone = uploadDone @@ -169,11 +171,11 @@ func (muer *MultiUploader) upload() (uperr error) { if allSuccess { e := muer.multiUpload.CommitFile() if e != nil { - uploaderVerbose.Warn("upload file commit failed: " + e.Error()) + logger.Verboseln("upload file commit failed: " + e.Error()) return e } } else { - uploaderVerbose.Warn("upload file not all success: " + muer.UploadOpEntity.FileId) + logger.Verboseln("upload file not all success: " + muer.UploadOpEntity.FileId) } return diff --git a/internal/file/uploader/uploader.go b/internal/file/uploader/uploader.go index cb7fce9..8748627 100644 --- a/internal/file/uploader/uploader.go +++ b/internal/file/uploader/uploader.go @@ -14,10 +14,8 @@ package uploader import ( - "github.com/tickstep/aliyunpan/internal/config" "github.com/tickstep/aliyunpan/internal/utils" "github.com/tickstep/library-go/converter" - "github.com/tickstep/library-go/logger" "github.com/tickstep/library-go/requester" "github.com/tickstep/library-go/requester/rio" "net/http" @@ -51,10 +49,6 @@ type ( } ) -var ( - uploaderVerbose = logger.New("UPLOADER", config.EnvVerbose) -) - // NewUploader 返回 uploader 对象, url: 上传地址, readerlen64: 实现 rio.ReaderLen64 接口的对象, 例如文件 func NewUploader(url string, readerlen64 rio.ReaderLen64) (uploader *Uploader) { uploader = &Uploader{ diff --git a/internal/functions/panupload/upload.go b/internal/functions/panupload/upload.go index d6c3303..b90258b 100644 --- a/internal/functions/panupload/upload.go +++ b/internal/functions/panupload/upload.go @@ -96,6 +96,7 @@ func (pu *PanUpload) UploadFile(ctx context.Context, partseq int, partOffset int } newUploadInfo, err := pu.panClient.GetUploadUrl(refreshUploadParam) if err != nil { + logger.Verboseln(err) return false, &uploader.MultiError{ Err: uploader.UploadUrlExpired, Terminated: false, diff --git a/internal/functions/panupload/utils.go b/internal/functions/panupload/utils.go index c60e0ee..f51e9d1 100644 --- a/internal/functions/panupload/utils.go +++ b/internal/functions/panupload/utils.go @@ -55,7 +55,7 @@ func IsUrlExpired(urlStr string) bool { } expiredTimeSecStr := u.Query().Get("x-oss-expires") expiredTimeSec, _ := strconv.ParseInt(expiredTimeSecStr, 10, 64) - if (time.Now().Unix() - 10) >= expiredTimeSec { + if (expiredTimeSec - time.Now().Unix()) <= 10 { // 小于10秒 // expired return true }