AWS S3にジンのアップロードの写真をgolang

地域を知るためにAWS AWS S3最初の必要性に画像をアップロードするにしても、あなたがアクセスキーIDとシークレットアクセスキーに続いて、ストレージ樽の名前を知っている必要があり、領域であり、

パッケージハンドラの

インポート(
	"バイト" 
	"IO / ioutil" 
	"ログイン" 
	"ネット/ HTTP" 

	"github.com/aws/aws-sdk-go/aws" 
	「github.com/aws/aws-sdk-go/aws/資格証明書" 
	"github.com/aws/aws-sdk-go/aws/session" 
	"github.com/aws/aws-sdk-go/service/s3" 
	"github.com/gin-gonic/gin" 
	"行きます。 uber.org/zap」
	"gopkg.in/yaml.v2" 

タイプconfの構造体{ 
	AccessKeyID列`YAML: "AccessKeyID"` 
	SecretAccessKey文字列`YAML: "SecretAccessKey"` 
	S3Region列`YAML: "S3Region"` 
	S3Bucket列` YAML: "S3Bucket"` 
} 
 
FUNC(C * CONF)GetConf()* CONF {
	yamlFile、ERR = ioutil.ReadFile( "CONF / app.yamlを") 場合ERR =ゼロ{ 
		log.Printf( "yamlFile.GetのERR#1%のV"、ERR)
	} 

	ERR = yaml.Unmarshal(yamlFile、C) 場合ERR =ゼロ{ 
		log.Fatalf( "非整列化:%のV"、ERR)
	} 
	戻りC 
} 

VAR設定confの

FUNCのUploadDocument(C *とのgin.Context){ 

	config.GetConf()
	AccessKeyID:= config.AccessKeyID 
	SecretAccessKey:= config.SecretAccessKey 
	S3Region:= config.S3Region 
	S3Bucket:= config.S3Bucket 

	ロガー:= c.MustGet( "ロガー")(* zap.SugaredLogger)。
	fileHeader、ERR:= c.FormFile( "ファイル")
	F、ERR:= fileHeader.Open()
	VARサイズのInt64 = fileHeader.Size

	バッファ:=作る([]バイト、サイズ)
	f.Read(バッファ)

	credsを:= credentials.NewStaticCredentials(AccessKeyID、SecretAccessKey、 "")
	の、ERR = session.NewSession(&aws.Config { 
		地域:aws.String( S3Region)、
		資格:credsを、
	})
	!= nilを誤る場合{ 
		"エラー" logger.Errorwは(ERR、 "ファイルのアップロードを処理する際にエラーが発生した")
	} 

	_、ERR = s3.New(S).PutObject(&S3 .PutObjectInput { 
		バケツ:aws.String(S3Bucket)、
		キー:aws.String( "myfolderなど" + "/" + fileHeader.Filename)、
		ACL:aws.String( "プライベート")、
		本体:bytes.NewReader(バッファ) 、
		ん。ContentLength:aws.Int64(サイズ)、 
		ContentTypeを:aws.String(http.DetectContentType(バッファ))、
		ContentDisposition:aws.String( "添付ファイル")、 
	}) 場合誤る=ゼロ{ 
		logger.Errorw( "エラー" ERR、 "ファイルのアップロードを処理する際にエラーが発生しました")
	} 
}

  

上記は、要求フォーマット郵便配達であります

 

おすすめ

転載: www.cnblogs.com/sumafan/p/11457286.html