地域を知るために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、 "ファイルのアップロードを処理する際にエラーが発生しました") } }
上記は、要求フォーマット郵便配達であります