package util
import (
"fmt"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
"io/ioutil"
"os"
qu "qfw/util"
)
type Task struct {
UserId string
UserName string
GiveNum int
}
type Data struct {
ID string
Info map[string]interface{}
}
//oss
var (
ossEndpoint = "oss-cn-beijing-internal.aliyuncs.com" //正式环境用:oss-cn-beijing-internal.aliyuncs.com 测试:oss-cn-beijing.aliyuncs.com
ossAccessKeyId = "LTAI4G5x9aoZx8dDamQ7vfZi"
ossAccessKeySecret = "Bk98FsbPYXcJe72n1bG3Ssf73acuNh"
ossBucketName = "topjy"
ossclient *oss.Client
)
func InitOss() {
client, err := oss.New(ossEndpoint, ossAccessKeyId, ossAccessKeySecret)
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
ossclient = client
}
func OssGetObject(objectName string) string {
defer qu.Catch()
// 获取存储空间。
bucket, err := ossclient.Bucket(ossBucketName)
if err != nil {
fmt.Println("Error:", err)
return ""
}
// 下载文件到流。
body, err := bucket.GetObject(objectName)
if err != nil {
fmt.Println("Error:", err)
return ""
}
defer body.Close()
data, err := ioutil.ReadAll(body)
if err != nil {
fmt.Println("Error:", err)
return ""
}
return string(data)
}
func GetFileText(tmp map[string]interface{}) (filetext string) {
fn_url := map[string]string{}
if projectinfo, ok := tmp["projectinfo"].(map[string]interface{}); ok && projectinfo != nil {
if attachments, ok := projectinfo["attachments"].(map[string]interface{}); ok && attachments != nil {
for _, info := range attachments {
if infoMap, ok := info.(map[string]interface{}); ok && infoMap != nil {
filename := qu.ObjToString(infoMap["filename"])
org_url := qu.ObjToString(infoMap["org_url"])
fn_url[filename] = org_url
}
}
}
}
if len(fn_url) > 0 {
index := 1
if attchMap, ok := tmp["attach_text"].(map[string]interface{}); attchMap != nil && ok {
for fn, url := range fn_url {
href := fmt.Sprint(index) + "." + fn + "\n
"
onetext := ""
for _, tmpData1 := range attchMap {
if tmpData2, ok := tmpData1.(map[string]interface{}); tmpData2 != nil && ok {
for _, result := range tmpData2 {
if resultMap, ok := result.(map[string]interface{}); resultMap != nil && ok {
file_name := qu.ObjToString(resultMap["file_name"])
if fn == file_name { //找到对应的附件
if attach_url := qu.ObjToString(resultMap["attach_url"]); attach_url != "" {
onetext = OssGetObject(attach_url) + "\n
" //oss读数据
goto L
}
}
}
}
}
}
L:
filetext += href + onetext
index++
}
}
}
/**
if attchMap, ok := tmp["attach_text"].(map[string]interface{}); attchMap != nil && ok {
for _, tmpData1 := range attchMap {
if tmpData2, ok := tmpData1.(map[string]interface{}); tmpData2 != nil && ok {
for _, result := range tmpData2 {
if resultMap, ok := result.(map[string]interface{}); resultMap != nil && ok {
if attach_url := util.ObjToString(resultMap["attach_url"]); attach_url != "" {
bs := OssGetObject(attach_url) //oss读数据
if utf8.RuneCountInString(filetext+bs) < 50000 {
filetext += bs + "\n"
} else {
break
}
}
}
}
}
}
}
*/
return
}