Parcourir la source

数据修改、新增将detail、contenthtml存入oss

mxs il y a 9 mois
Parent
commit
650bad7a7e
3 fichiers modifiés avec 39 ajouts et 18 suppressions
  1. 1 0
      src/main.go
  2. 24 6
      src/service/repair_service.go
  3. 14 12
      src/util/ossclient.go

+ 1 - 0
src/main.go

@@ -20,6 +20,7 @@ func init() {
 	util.InitMgoPool()             //初始化连接
 	util.InitOther()
 	util.InitUdp()
+	util.InitOss()
 	//xweb框架配置
 	xweb.Config.RecoverPanic = true
 	xweb.Config.Profiler = true

+ 24 - 6
src/service/repair_service.go

@@ -125,7 +125,9 @@ func (jy *RepairRule) RepairNewSave() {
 	}
 
 	//处理个别字段
-	(*updata)["_id"] = primitive.NewObjectID()
+	objId := primitive.NewObjectID()
+	(*updata)["_id"] = objId
+	id := objId.Hex()
 	if hf := qu.ObjToString((*updata)["site"]); hf == "竞品网站" { // 竞品网站
 		//var Url = "https://www.jianyu360.cn/article/content/%s.html"
 		//(*updata)["competehref"] = fmt.Sprintf(Url, qu.CommonEncodeArticle("content", mongodb.BsonIdToSId((*updata)["_id"])))
@@ -171,7 +173,9 @@ func (jy *RepairRule) RepairNewSave() {
 	_, _ = spiderutil.AddBloomRedis("detail", spiderutil.FilterDetail(detail))
 	//PutRedis("title_repeat_listpagehref", 0, href, "", 3600*24*30*24)                               // 列表页增量redis
 	if b {
-		log.Println("当前新增id:", mongodb.BsonIdToSId((*updata)["_id"]))
+		OssPutObject(OssBucketNameDetail, id, []byte(detail))
+		OssPutObject(OssBucketNameContenthtml, id, []byte(contenthtml))
+		log.Println("当前新增id:", id)
 		//日志记录
 		user := jy.GetSession("user").(map[string]interface{})
 		log_data := map[string]interface{}{
@@ -188,7 +192,6 @@ func (jy *RepairRule) RepairNewSave() {
 		jy.ServeJson(map[string]interface{}{
 			"rep": true,
 		})
-
 	} else {
 		jy.ServeJson(map[string]interface{}{
 			"rep": false,
@@ -244,7 +247,9 @@ func (jy *RepairRule) RepairPub() {
 	jsdata := qu.ObjToMap(request_data["data"])
 	qu.Debug(*jsdata)
 	save := make(map[string]interface{})
-	save["_id"] = primitive.NewObjectID()
+	objId := primitive.NewObjectID()
+	id := objId.Hex()
+	save["_id"] = objId
 	modifyinfo := map[string]interface{}{}
 	for k, v := range *jsdata {
 		if v == "" || v == nil {
@@ -295,6 +300,12 @@ func (jy *RepairRule) RepairPub() {
 	qu.Debug("save:", save)
 	b := JYMgo.SaveByOriID(JyCollNameOne, save)
 	if b {
+		if detail := qu.ObjToString(save["detail"]); detail != "" {
+			OssPutObject(OssBucketNameDetail, id, []byte(detail))
+		}
+		if contenthtml := qu.ObjToString(save["contenthtml"]); contenthtml != "" {
+			OssPutObject(OssBucketNameContenthtml, id, []byte(contenthtml))
+		}
 		// 保存服务
 		href := qu.ObjToString(save["href"])
 		//db := HexToBigIntMod(href)
@@ -486,6 +497,7 @@ func (jy *RepairRule) RepairDelete() {
 		//删除redis 指定key
 		delName1 := RedisDelKey1 + "*_" + "*_" + id
 		redis.DelByCodePattern(RedisJYName, delName1)
+		go delDetailRedis(id) //删除详情页缓存
 		//jyredis := redis.RedisPool[RedisJYName].Get()
 		//defer jyredis.Close()
 		//if _, err := jyredis.Do("SELECT", 0); err != nil {
@@ -659,6 +671,12 @@ func (jy *RepairRule) RepairSave() {
 				"rep": rep,
 			})
 		} else {
+			if detail := qu.ObjToString(updata["detail"]); detail != "" {
+				OssPutObject(OssBucketNameDetail, id, []byte(detail))
+			}
+			if contenthtml := qu.ObjToString(updata["contenthtml"]); contenthtml != "" {
+				OssPutObject(OssBucketNameContenthtml, id, []byte(contenthtml))
+			}
 			//调udp生索引
 			indexNode := *qu.ObjToMap(Sysconfig["indexNode"])
 			by, _ := json.Marshal(map[string]interface{}{
@@ -1471,7 +1489,7 @@ func (jy *RepairRule) UpFile() {
 			})
 			return
 		}
-		InitOss()
+
 		var atts []map[string]interface{}
 		for _, m := range fileArr {
 			download := qu.ObjToString(m["org_url"])
@@ -1501,7 +1519,7 @@ func (jy *RepairRule) UpFile() {
 				}
 			}
 			key := GetHashKey(bt) + TypeByExt(filename)
-			b, err := OssPutObject(key, bytes.NewReader(bt))
+			b, err := OssPutObject(OssBucketNameFile, key, bt)
 			if b {
 				tmp := make(map[string]interface{})
 				tmp["org_url"] = download

+ 14 - 12
src/util/ossclient.go

@@ -2,9 +2,9 @@
 package util
 
 import (
+	"bytes"
 	"crypto/sha256"
 	"fmt"
-	"io"
 	"io/ioutil"
 	"os"
 	"qfw/util"
@@ -13,11 +13,13 @@ import (
 )
 
 var (
-	ossEndpoint        = "oss-cn-beijing-internal.aliyuncs.com" //正式环境用:oss-cn-beijing-internal.aliyuncs.com 测试:oss-cn-beijing.aliyuncs.com
-	ossAccessKeyId     = "LTAI4G5x9aoZx8dDamQ7vfZi"
-	ossAccessKeySecret = "Bk98FsbPYXcJe72n1bG3Ssf73acuNh"
-	ossBucketName      = "jy-datafile" //jy-datafile
-	ossclient          *oss.Client
+	ossEndpoint              = "oss-cn-beijing-internal.aliyuncs.com" //正式环境用:oss-cn-beijing-internal.aliyuncs.com 测试:oss-cn-beijing.aliyuncs.com
+	ossAccessKeyId           = "LTAI4G5x9aoZx8dDamQ7vfZi"
+	ossAccessKeySecret       = "Bk98FsbPYXcJe72n1bG3Ssf73acuNh"
+	ossclient                *oss.Client
+	OssBucketNameFile        = "jy-datafile"   //jy-datafile
+	OssBucketNameDetail      = "jy-datadetail" //jy-datadetail
+	OssBucketNameContenthtml = "jy-datahtml"   //jy-datahtml
 )
 
 func InitOss() {
@@ -30,16 +32,16 @@ func InitOss() {
 }
 
 // OssPutObject oss附件上传
-func OssPutObject(objectName string, fd io.Reader) (bool, error) {
+func OssPutObject(bucketName, objectKey string, text []byte) (bool, error) {
 	util.Catch()
 	// 获取存储空间。
-	bucket, err := ossclient.Bucket(ossBucketName)
+	bucket, err := ossclient.Bucket(bucketName)
 	if err != nil {
 		fmt.Println("Error:", err)
 		return false, err
 	}
 	// 上传文件流。
-	err = bucket.PutObject(objectName, fd)
+	err = bucket.PutObject(objectKey, bytes.NewBuffer(text))
 	if err != nil {
 		fmt.Println("Error:", err)
 		return false, err
@@ -48,17 +50,17 @@ func OssPutObject(objectName string, fd io.Reader) (bool, error) {
 	return true, nil
 }
 
-func OssGetObject(objectName string) string {
+func OssGetObject(bucketName, objectKey string) string {
 	util.Catch()
 	// 获取存储空间。
-	bucket, err := ossclient.Bucket(ossBucketName)
+	bucket, err := ossclient.Bucket(bucketName)
 	if err != nil {
 		fmt.Println("Error:", err)
 		return ""
 	}
 
 	// 下载文件到流。
-	body, err := bucket.GetObject(objectName)
+	body, err := bucket.GetObject(objectKey)
 	if err != nil {
 		fmt.Println("Error:", err)
 		return ""