{"author_name":"a-know","url":"https://blog.a-know.me/entry/2018/05/13/110707","published":"2018-05-13 11:07:07","width":"100%","title":"Golang\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u304b\u3089 Google Cloud Storage \u306b\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3059\u308b","image_url":"https://cdn-ak.f.st-hatena.com/images/fotolife/a/a-know/20170820/20170820235752.jpg","provider_url":"https://hatena.blog","version":"1.0","author_url":"https://blog.hatena.ne.jp/a-know/","categories":["Go","GCP","GAE"],"blog_title":"\u3048\u3044\u306e\u3046\u306b\u3063\u304d","height":"190","provider_name":"Hatena Blog","description":"cloud.google.com/go/storage \u3092\u4f7f\u3046\u3002 func uploadGcs(r *http.Request) error { bucketname := \"bucketname\" // GCS\u30d0\u30b1\u30c3\u30c8\u540d objname := \"objname\" // \"foo/var/baz.png\" \u307f\u305f\u3044\u306a\u304b\u3093\u3058 ctx := r.Context() client, err := storage.NewClient(ctx) if err != nil { log.Printf(\"failed to create gcs client : %v\", err) return err } \u2026","blog_url":"https://blog.a-know.me/","type":"rich","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fblog.a-know.me%2Fentry%2F2018%2F05%2F13%2F110707\" title=\"Golang\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u304b\u3089 Google Cloud Storage \u306b\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3059\u308b - \u3048\u3044\u306e\u3046\u306b\u3063\u304d\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>"}