12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- package entity
- import (
- "crypto/sha256"
- "fmt"
- "io"
- "os"
- "app.yhyue.com/moapp/jybase/common"
- "github.com/zeromicro/go-zero/core/logx"
- "github.com/aliyun/aliyun-oss-go-sdk/oss"
- )
- var Ossclient *oss.Client
- func OssInit(ossEndpoint, ossAccessKeyID, ossAccessKeySecret string) {
- client, err := oss.New(ossEndpoint, ossAccessKeyID, ossAccessKeySecret)
- if err != nil {
- logx.Error("Error:", err)
- os.Exit(-1)
- }
- Ossclient = client
- }
- // OssPutObject oss附件上传
- func OssPutObject(objectName string, fd io.Reader, ossBucketName string) (bool, error) {
- common.Catch()
- // 获取存储空间。
- bucket, err := Ossclient.Bucket(ossBucketName)
- if err != nil {
- logx.Error("Error:", err)
- return false, err
- }
- option := []oss.Option{
- oss.ContentDisposition("attachment;filename=" + objectName),
- oss.ContentType("application/octet-stream"),
- oss.ACReqHeaders("Access-Control-Allow-Origin"),
- oss.ACReqMethod("*"),
- }
- // 上传文件流。 文件超过1M 上传时间超时(发现是受控制台日志打印影响,现已把日志单独处理,注释协程)
- err = bucket.PutObject(objectName, fd, option...)
- if err != nil {
- logx.Error("file upload false:", err)
- return false, err
- }
- return true, nil
- }
- //删除附件
- func OssDelObject(objectName, ossBucketName string) (bool, error) {
- common.Catch()
- // 获取存储信息
- bucket, err := Ossclient.Bucket(ossBucketName)
- if err != nil {
- logx.Error("Error:", err)
- return false, err
- }
- //附件是否存在 存在再删除
- if ok, _ := bucket.IsObjectExist(objectName); !ok {
- err = bucket.DeleteObject(objectName)
- if err != nil {
- logx.Error("file del false:", err)
- return false, err
- }
- }
- return true, err
- }
- func GetHashKey(bs []byte) string {
- common.Catch()
- ha := sha256.New()
- ha.Write(bs)
- hbs := ha.Sum(nil)
- key := fmt.Sprintf("%x", hbs)
- return key
- }
- func TypeByExt(path string) string {
- for i := len(path) - 1; i >= 0 && path[i] != '/'; i-- {
- if path[i] == '.' {
- return path[i:]
- }
- }
- return ""
- }
|