upload.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package support
  2. import (
  3. "bytes"
  4. "github.com/qiniu/api.v7/auth/qbox"
  5. "github.com/qiniu/api.v7/storage"
  6. "mime/multipart"
  7. )
  8. var accessKey string = "25j8dYBZ2wuiy0yhwShytjZDTX662b8xiFguwxzZ" // 你在七牛云的accessKey
  9. var secretKey string = "pgdbqEsf7ooZh7W3xokP833h3dZ_VecFXPDeG5JY" // 你在七牛云的secretKey
  10. var bucket string = "a303176530" // 你七牛云标准空间的名字
  11. func Upload(file multipart.File) (err error, path string) {
  12. putPolicy := storage.PutPolicy{
  13. Scope: bucket,
  14. }
  15. mac := qbox.NewMac(accessKey, secretKey)
  16. upToken := putPolicy.UploadToken(mac)
  17. cfg := storage.Config{}
  18. // 空间对应的机房
  19. cfg.Zone = &storage.ZoneHuadong
  20. // 是否使用https域名
  21. cfg.UseHTTPS = false
  22. // 上传是否使用CDN上传加速
  23. cfg.UseCdnDomains = false
  24. formUploader := storage.NewFormUploader(&cfg)
  25. ret := storage.PutRet{}
  26. putExtra := storage.PutExtra{
  27. Params: map[string]string{
  28. "x:name": "github logo",
  29. },
  30. }
  31. data := []byte("hello, this is qiniu cloud")
  32. dataLen := int64(len(data))
  33. err := formUploader.Put(context.Background(), &ret, upToken, key, bytes.NewReader(data), dataLen, &putExtra)
  34. if err != nil {
  35. fmt.Println(err)
  36. return
  37. }
  38. fmt.Println(ret.Key, ret.Hash)
  39. }