wangchuanjin пре 1 месец
родитељ
комит
ba1dbe329e
2 измењених фајлова са 15 додато и 4 уклоњено
  1. 1 1
      oss/http.go
  2. 14 3
      oss/oss.go

+ 1 - 1
oss/http.go

@@ -137,6 +137,6 @@ func BidDetailHandler(w http.ResponseWriter, r *http.Request) {
 		http.Error(w, api.Error_msg_1002+"object_name", http.StatusInternalServerError)
 		return
 	}
-	log.Println(GetIp(r), "根据标讯id获取正文", bucketID, objectName)
+	log.Println(GetIp(r), "获取标讯正文", bucketID, objectName)
 	GetBidDetail(w, bucketID, objectName)
 }

+ 14 - 3
oss/oss.go

@@ -15,6 +15,7 @@ import (
 	"net/http"
 	"sync"
 	"sync/atomic"
+	"time"
 
 	"app.yhyue.com/moapp/jybase/es"
 	ossSDK "github.com/aliyun/aliyun-oss-go-sdk/oss"
@@ -161,9 +162,19 @@ func Upload(bucketID, objectName string, data io.Reader, gzipEnabled bool) error
 		reader = data
 	}
 	// 上传到OSS
-	if err := bucket.PutObject(objectName, reader); err != nil {
-		log.Println(bucketID, objectName, "上传出错", err)
-		return err
+	retry := 0
+	for {
+		if err := bucket.PutObject(objectName, reader); err != nil {
+			retrySleep := g.Config().MustGet(gctx.New(), "retrySleep", 3).Int()
+			log.Println(bucketID, objectName, "第", retry+1, "次上传出错,", retrySleep, "秒后重试", err)
+			if retry >= g.Config().MustGet(gctx.New(), "retry", 3).Int() {
+				return err
+			}
+			retry++
+			time.Sleep(time.Duration(retrySleep) * time.Second)
+		} else {
+			break
+		}
 	}
 	return nil
 }