【実際の戦闘に行く|Eコマースプラットフォーム】(7)写真をQiniuyunにアップロードする

この章では、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
}

おすすめ

転載: blog.csdn.net/weixin_45304503/article/details/121499608