kodo.go 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. package file_store
  2. //
  3. //import (
  4. // "context"
  5. // "fmt"
  6. //
  7. // "github.com/qiniu/go-sdk/v7/auth/qbox"
  8. // "github.com/qiniu/go-sdk/v7/storage"
  9. //)
  10. //
  11. //type Zone string
  12. //
  13. //const (
  14. // // HuaDong 华东
  15. // HuaDong Zone = "HuaDong"
  16. // // HuaBei 华北
  17. // HuaBei Zone = "HuaBei"
  18. // // HuaNan 华南
  19. // HuaNan Zone = "HuaNan"
  20. // // BeiMei 北美
  21. // BeiMei Zone = "BeiMei"
  22. // // XinJiaPo 新加坡
  23. // XinJiaPo Zone = "XinJiaPo"
  24. //)
  25. //
  26. //type QiNiuKODO struct {
  27. // Client interface{}
  28. // BucketName string
  29. // cfg storage.Config
  30. // options []ClientOption
  31. //}
  32. //
  33. //func (e *QiNiuKODO) getToken() string {
  34. // putPolicy := storage.PutPolicy{
  35. // Scope: e.BucketName,
  36. // }
  37. // if len(e.options) > 0 && e.options[0]["Expires"] != nil {
  38. // putPolicy.Expires = e.options[0]["Expires"].(uint64)
  39. // }
  40. // upToken := putPolicy.UploadToken(e.Client.(*qbox.Mac))
  41. // return upToken
  42. //}
  43. //
  44. //// Setup 装载
  45. //// endpoint sss
  46. //func (e *QiNiuKODO) Setup(endpoint, accessKeyID, accessKeySecret, BucketName string, options ...ClientOption) error {
  47. //
  48. // mac := qbox.NewMac(accessKeyID, accessKeySecret)
  49. // // 获取存储空间。
  50. // cfg := storage.Config{}
  51. // // 空间对应的机房
  52. // e.setZoneORDefault(cfg, options...)
  53. // // 是否使用https域名
  54. // cfg.UseHTTPS = true
  55. // // 上传是否使用CDN上传加速
  56. // cfg.UseCdnDomains = false
  57. //
  58. // e.Client = mac
  59. // e.BucketName = BucketName
  60. // e.cfg = cfg
  61. // e.options = options
  62. // return nil
  63. //}
  64. //
  65. //// setZoneORDefault 设置Zone或者默认华东
  66. //func (e *QiNiuKODO) setZoneORDefault(cfg storage.Config, options ...ClientOption) {
  67. // if len(options) > 0 && options[0]["Zone"] != nil {
  68. // if _, ok := options[0]["Zone"].(Zone); !ok {
  69. // cfg.Zone = &storage.ZoneHuadong
  70. // }
  71. // switch options[0]["Zone"].(Zone) {
  72. // case HuaDong:
  73. // cfg.Zone = &storage.ZoneHuadong
  74. // case HuaBei:
  75. // cfg.Zone = &storage.ZoneHuabei
  76. // case HuaNan:
  77. // cfg.Zone = &storage.ZoneHuanan
  78. // case BeiMei:
  79. // cfg.Zone = &storage.ZoneBeimei
  80. // case XinJiaPo:
  81. // cfg.Zone = &storage.ZoneXinjiapo
  82. // default:
  83. // cfg.Zone = &storage.ZoneHuadong
  84. // }
  85. // }
  86. //}
  87. //
  88. //// UpLoad 文件上传
  89. //func (e *QiNiuKODO) UpLoad(yourObjectName string, localFile interface{}) error {
  90. //
  91. // // 构建表单上传的对象
  92. // formUploader := storage.NewFormUploader(&e.cfg)
  93. // ret := storage.PutRet{}
  94. // // 可选配置
  95. // putExtra := storage.PutExtra{
  96. // Params: map[string]string{
  97. // "x:name": "github logo",
  98. // },
  99. // }
  100. // err := formUploader.PutFile(context.Background(), &ret, e.getToken(), yourObjectName, localFile.(string), &putExtra)
  101. // if err != nil {
  102. // fmt.Println(err)
  103. // return err
  104. // }
  105. // fmt.Println(ret.Key, ret.Hash)
  106. // return nil
  107. //}
  108. //
  109. //func (e *QiNiuKODO) GetTempToken() (string, error) {
  110. // token := e.getToken()
  111. // return token, nil
  112. //}