duanqiao1926 2018-08-08 19:44
浏览 142
已采纳

在Golang中使用Google Cloud Platform中的存储桶

I'm trying to host a Go app on the Google Cloud Platform and I need it to do some file writing. GCP doesn't let you do file writing directly in the App Engine, but requires you to use a Bucket.

From their documentation, you can access the buckets in PHP like so

$default_bucket = CloudStorageTools::getDefaultGoogleStorageBucketName();
$fp = fopen("gs://${default_bucket}/hello_default_stream.txt", 'w');
fwrite($fp, $newFileContent);
fclose($fp);

Is there a Golang equivalent for this?

  • 写回答

1条回答 默认 最新

  • doujumiao5024 2018-08-09 13:47
    关注

    As shared by Daz on the first comment, there's an intro on how to do this on the docs for Standard. This uses the cloud.google.com/go/storage library, although you could also use the superseded google.golang.org/appengine/blobstore (as also explained in the docs).

    With those docs, you could simplify them until you get the following code (tested it and works as expected):

    package minimal_gcs
    
    import (
            s "cloud.google.com/go/storage"
            a "google.golang.org/appengine"
            h "net/http"
    )
    
    func init() {
            h.HandleFunc("/", func(w h.ResponseWriter, r *h.Request) {
                    cx := a.NewContext(r)
                    c, _ := s.NewClient(cx)
                    wr := c.Bucket("<bucket_id>").Object("<object_id>").NewWriter(cx)
                    _, _ = wr.Write([]byte("Hello World!!1"))
                    _ = wr.Close()
            })
    }
    

    Note that this is really bad code (no error handling, ...), but I think it's useful to show the basic steps to handle GCS files within GAE standard using Go.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥30 基于信创PC发布的QT应用如何跨用户启动后输入中文
  • ¥20 非root手机,如何精准控制手机流量消耗的大小,如20M
  • ¥15 远程安装一下vasp
  • ¥15 自己做的代码上传图片时,报错
  • ¥15 Lingo线性规划模型怎么搭建
  • ¥15 关于#python#的问题,请各位专家解答!区间型正向化
  • ¥15 unity从3D升级到urp管线,打包ab包后,材质全部变紫色
  • ¥50 comsol温度场仿真无法模拟微米级激光光斑
  • ¥15 上传图片时提交的存储类型
  • ¥15 VB.NET如何绘制倾斜的椭圆