記事ディレクトリ
この章では、Qiniu Cloudに画像をアップロードし、対応する画像のURLを返す方法を紹介します。その後の製品の作成、アバターの交換などのため、すべての写真をQiniuクラウドストレージにアップロードしてから、対応するURLを返します。
1.構成情報を取得します
- Qiniuyunの公式ウェブサイトを開き、コンソールに入ります。
- リソース管理用のストレージスペースを見つける
- スペースを作成する
-
新しい収納スペース
-
次に、このページに入ります。ドメイン名をバインドするか、バインドしないかを選択できます。Qiniuをバインドしない場合は、体験できるドメイン名が与えられます。これは7日間有効と思われます。
-
ドメイン名をバインドするだけ
ドメイン名をそれにバインドするだけです。
ドメイン名がない場合は、Qiniuから送信されたドメイン名を次に示します。
- キーを取得
- これらの両方
大丈夫です
2.構成
- config.iniファイル
AccessKey=是上面AK
SercetKey=是上面的SK
Bucket=是刚刚新创的名称!
QiniuServer=是绑定的域名
- conf.goファイル
負荷構成
func LoadQiniu(file *ini.File) {
AccessKey = file.Section("qiniu").Key("AccessKey").String()
SerectKey = file.Section("qiniu").Key("SerectKey").String()
Bucket = file.Section("qiniu").Key("Bucket").String()
QiniuServer = file.Section("qiniu").Key("QiniuServer").String()
}
3.アップロード
pkgパッケージのutilsの下にupload.go
ファイルを作成します
- 構成ファイルを読み取る
var AccessKey = conf.AccessKey
var SerectKey = conf.SerectKey
var Bucket = conf.Bucket
var ImgUrl = conf.QiniuServer
putPlicy := storage.PutPolicy{
Scope:Bucket,
}
- Qiniuクラウドをアップロードし、URLとステータスを返します
mac := qbox.NewMac(AccessKey,SerectKey)
upToken := putPlicy.UploadToken(mac)
cfg := storage.Config{
Zone : &storage.ZoneHuanan,
UseCdnDomains : false,
UseHTTPS : false,
}
putExtra := storage.PutExtra{
}
formUploader := storage.NewFormUploader(&cfg)
ret := storage.PutRet{
}
err := formUploader.PutWithoutKey(context.Background(),&ret,upToken,file,fileSize,&putExtra)
if err != nil {
code := e.ErrorUploadFile
return code , err.Error()
}
url := ImgUrl + ret.Key
return 200,url
完全なコード
受信ファイルとファイルサイズは、URLとステータスを返します
package util
import (
"context"
"github.com/qiniu/go-sdk/v7/auth/qbox"
"github.com/qiniu/go-sdk/v7/storage"
"mall/conf"
"mall/pkg/e"
"mime/multipart"
)
// 封装上传图片到七牛云然后返回状态和图片的url
func UploadToQiNiu(file multipart.File ,fileSize int64) (int,string) {
var AccessKey = conf.AccessKey
var SerectKey = conf.SerectKey
var Bucket = conf.Bucket
var ImgUrl = conf.QiniuServer
putPlicy := storage.PutPolicy{
Scope:Bucket,
}
mac := qbox.NewMac(AccessKey,SerectKey)
upToken := putPlicy.UploadToken(mac)
cfg := storage.Config{
Zone : &storage.ZoneHuanan,
UseCdnDomains : false,
UseHTTPS : false,
}
putExtra := storage.PutExtra{
}
formUploader := storage.NewFormUploader(&cfg)
ret := storage.PutRet{
}
err := formUploader.PutWithoutKey(context.Background(),&ret,upToken,file,fileSize,&putExtra)
if err != nil {
code := e.ErrorUploadFile
return code , err.Error()
}
url := ImgUrl + ret.Key
return 200,url
}