#S3 #AWS #Go言語 #LocalStack [[AWS SDK for Go V2]]で画像を登録する方法。 `your-bucket-name`バケット配下が以下の構造になっているとする。 ```ls - your-bucket-name (バケット名) - path-from-bucket-root ``` 以下のコードで取得できる。 ```go // bodyは []byte mimeType := http.DetectContentType(body) _, err := c.client.PutObject(context.TODO(), &s3.PutObjectInput{ Bucket: aws.String(c.bucketName), Key: aws.String(path), Body: bytes.NewReader(body), ContentType: aws.String(mimeType), CacheControl: aws.String("no-cache"), }) if err != nil { log.Fatal(err) } ``` - `ContentType`を指定しないとすべて`application/octet-stream`として扱われるので注意 - `http.DetectContentType(body)`でデータから[[Content-Type]]を推論できる ## 参考 - [goでデータ形式を識別するためのMIMEタイプを判定する方法 : ビジネスとIT活用に役立つ情報](https://www.asobou.co.jp/blog/web/go-mime)