ジョギング
- 山王公園周辺を 45 分
- 懸垂 x 7 回
- なぜか息があがってしまってキツかった..., そして右足に強い張り
即位の礼
- うっかりしていた
- 我が家は晩餐会のお誘いはなかった
Serverless Days Tokyo
- かなり盛り上がったようで行きたかった
ギョーム
- 今日は気づいたらお休みだったという感じだったので嬉しかった
- 空いた時間を使って社内画像共有システムの改修等を細々と, 最低限やっておきたいと思ったことを 90% くらいやれた
- Go で S3 Bucket にファイルをアップロードする際に aws-sdk-go の s3 パッケージではなく, s3manager を使ってみた
雑な感じだけど, 以下のような感じ.
import ( "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/credentials" "github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/service/s3/s3manager" ) config := aws.Config{ Region: aws.String("ap-northeast-1"), } uploader := s3manager.NewUploader(session.New(&config)) param := &s3manager.UploadInput{ Bucket: aws.String(bucketName), Key: aws.String(filename), Body: file, ContentType: aws.String("image/png"), } _, err := uploader.Upload(param) if err != nil { log.Printf("Image upload failed: %s\n", err) return "", err }
どっちもコード量的な変わらない感じなので, お好みで使い分けるといいのかなー.
- Go で HTTP を介して画像アップロードする時の処理の流れが少し理解出来た
- Go で書かれた HTTP Server のユニットテストも net/http/httptest を使って見様見真似で書いてみた (https://blog.questionable.services/article/testing-http-handlers-go/ を参考にさせて頂いた)
// テストされるハンドラ /ping にアクセスしたら pong を返すだけ func handlePing(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "pong\n") } // テストコード httptest.NewRecorder() を使う func TestHandlerPing(t *testing.T) { req, err := http.NewRequest("GET", "/ping", nil) if err != nil { t.Fatal(err) } rr := httptest.NewRecorder() handler := http.HandlerFunc(handlePing) handler.ServeHTTP(rr, req) if status := rr.Code; status != http.StatusOK { t.Errorf("handler returned wrong status code: got %v want %v", status, http.StatusOK) } expected := "pong\n" if rr.Body.String() != expected { t.Errorf("handler returned unexpected body: got %v want %v", rr.Body.String(), expected) } }
奥さん
- 引き続き, 口の中の痛みで悶ている...
- 可愛そう...
- でも, 食欲はあるので安心
夕飯
- 焼きそば, 美味しかった!
明日は
- 仕事だった...