| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- package oss
- import (
- "bytes"
- "context"
- "github.com/qiniu/go-sdk/v7/auth/qbox"
- "github.com/qiniu/go-sdk/v7/storage"
- )
- type QiNiuSdk struct {
- accessKey string
- secretKey string
- bucket string
- hostUrl string
- }
- func NewQiNiuSdk(AccessKey, SecretKey, Bucket, HostUrl string) *QiNiuSdk {
- return &QiNiuSdk{
- accessKey: AccessKey,
- secretKey: SecretKey,
- bucket: Bucket,
- hostUrl: HostUrl,
- }
- }
- func (s *QiNiuSdk) Upload(data []byte, dataLen int64, filename string) (url string, err error) {
- var (
- putPolicy = storage.PutPolicy{
- Scope: s.bucket,
- }
- mac = qbox.NewMac(s.accessKey, s.secretKey)
- upToken = putPolicy.UploadToken(mac)
- cfg = storage.Config{}
- )
- // 空间对应的机房
- cfg.Zone = &storage.ZoneHuabei
- cfg.UseHTTPS = false
- cfg.UseCdnDomains = false
- var (
- formUploader = storage.NewFormUploader(&cfg)
- ret = storage.PutRet{}
- putExtra = storage.PutExtra{}
- )
- if err = formUploader.Put(context.Background(), &ret, upToken, filename, bytes.NewReader(data), dataLen, &putExtra); err == nil {
- url = s.hostUrl + "/" + ret.Key
- }
- return
- }
- func (s *QiNiuSdk) GetUpToken() (upToken, hostUrl string) {
- var (
- putPolicy = storage.PutPolicy{
- Scope: s.bucket,
- }
- mac = qbox.NewMac(s.accessKey, s.secretKey)
- )
- upToken = putPolicy.UploadToken(mac)
- hostUrl = s.hostUrl
- return
- }
|