第一步 下载sdk
获取七牛的sdk,我这里是用go写的
go get -u github.com/qiniu/api.v7
七牛的sdk依赖了 golang.org/x
包,直接使用go get可能下载不了,可以使用github上的一个工具来下
下载好了以后,代码里需要使用到2个包
"github.com/qiniu/api.v7/auth/qbox"
"github.com/qiniu/api.v7/storage"
检查代码,如果没用到这2个包,那么检查一下qbox和storage包名是不是存在雷同.
第二步 获取必要信息
accessKey和secretKey
获取accessKey和secretKey这2个key可以登录七牛,然后进入
个人中心->个人信息->秘钥管理
[图片上传失败...(image-8c0117-1520215445963)]
bucket
bucket就是空间的名字.
[图片上传失败...(image-f3c0dc-1520215445963)]
key
是要上传的文件访问路径。比如:"foo/bar.jpg"。注意我们建议 key 不要以 '/' 开头。另外,key 为空字符串是合法的。(官方注释)
本地文件路径
这个就不多说了...
第三步 撸代码
package main
import (
"github.com/qiniu/api.v7/auth/qbox"
"github.com/qiniu/api.v7/storage"
"fmt"
"context"
)
// 自定义返回值结构体
type MyPutRet struct {
Key string
Hash string
Fsize int
Bucket string
Name string
}
func main() {
accessKey := "xxx"
secretKey := "xxx"
bucket:="blog"
localFile := "/Users/yehao/Desktop/testqiniu.png"
key := "testqiniu.png"
putPolicy := storage.PutPolicy{
Scope: bucket,
ReturnBody: `{"key":"$(key)","hash":"$(etag)","fsize":$(fsize),"bucket":"$(bucket)","name":"$(x:name)"}`,
}
mac := qbox.NewMac(accessKey, secretKey)
upToken := putPolicy.UploadToken(mac)
cfg := storage.Config{}
formUploader := storage.NewFormUploader(&cfg)
ret := MyPutRet{}
err := formUploader.PutFile(context.Background(), &ret, upToken, key, localFile, nil)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(ret.Bucket, ret.Key, ret.Fsize, ret.Hash, ret.Name)
}