ようへいの日々精進XP

よかろうもん

2019 年 10 月 22 日 (火)

ジョギング

  • 山王公園周辺を 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
}

どっちもコード量的な変わらない感じなので, お好みで使い分けるといいのかなー.

// テストされるハンドラ /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)
    }
}

奥さん

  • 引き続き, 口の中の痛みで悶ている...
  • 可愛そう...
  • でも, 食欲はあるので安心

夕飯

  • 焼きそば, 美味しかった!

明日は

  • 仕事だった...