123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- package oss
- import (
- "fmt"
- "github.com/aliyun/aliyun-oss-go-sdk/oss"
- "io/ioutil"
- 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 = "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, id string) string {
- util.Catch()
- // 获取存储空间。
- bucket, err := ossclient.Bucket(ossBucketName)
- if err != nil {
- return ""
- }
- // 下载文件到流。
- body, err := bucket.GetObject(objectName)
- if err != nil {
- //log.Info("OssGetObject", zap.String("key", objectName), zap.String("id", id))
- //log.Info("OssGetObject", zap.Error(err))
- return ""
- }
- defer body.Close()
- data, err := ioutil.ReadAll(body)
- if err != nil {
- fmt.Println("ReadAll", 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
- }
|