package oss import ( "fmt" "github.com/aliyun/aliyun-oss-go-sdk/oss" "io" util "jygit.jydev.jianyu360.cn/data_processing/common_utils" "os" "strconv" ) var ( ossEndpoint = "oss-cn-beijing-internal.aliyuncs.com" //正式环境用:oss-cn-beijing-internal.aliyuncs.com 测试:oss-cn-beijing.aliyuncs.com //ossEndpoint = "oss-cn-beijing.aliyuncs.com" //测试环境:oss-cn-beijing.aliyuncs.com ossAccessKeyId = "LTAI4G5x9aoZx8dDamQ7vfZi" ossAccessKeySecret = "Bk98FsbPYXcJe72n1bG3Ssf73acuNh" ossBucketName = "jy-datadetail" //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, bucketName string) string { util.Catch() // 获取存储空间。 bucket, err := ossclient.Bucket(bucketName) if err != nil { return "" } // 下载文件到流。 body, err := bucket.GetObject(objectName) if err != nil { fmt.Println("Error:", err) return "" } defer body.Close() data, err := io.ReadAll(body) if err != nil { fmt.Println("Error:", err) return "" } return string(data) } func OssObjExists(bname, fid string) bool { util.Catch() // 获取存储空间。 bucket, err := ossclient.Bucket(bname) if err != nil { fmt.Println("Error:", err) } // 判断文件是否存在。 isExist, err := bucket.IsObjectExist(fid) if err != nil { fmt.Println("Error:", err) } return isExist } // OssFileSize 获取文件大小 func OssFileSize(name string) bool { util.Catch() // 获取存储空间。 bucket, err := ossclient.Bucket(ossBucketName) if err != nil { fmt.Println("OssFileSize,Bucket err", err) } // 获取文件的元信息 props, err := bucket.GetObjectDetailedMeta(name) if err != nil { fmt.Println("Error getting object metadata:", err) } // 提取文件大小信息 fileSizeStr := props.Get("Content-Length") fmt.Printf("%T,%+v \n", fileSizeStr, fileSizeStr) // 将文件大小字符串解析为float64类型 fileSize, err := parseFileSize(fileSizeStr) fmt.Println("fileSize", fileSize) if err != nil { fmt.Println("Error parsing file size,", err) } // 判断文件大小是否超过20兆 if fileSize > 20*1024*1024 { // 将20兆转换为字节 fmt.Println("文件大小超过20兆") return true } else { fmt.Println("文件大小未超过20兆") return false } } // 解析文件大小字符串,将其转换为 int 类型 func parseFileSize(sizeStr string) (int, error) { fileSize, err := strconv.Atoi(sizeStr) if err != nil { return 0, err } return fileSize, nil }