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

在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.

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

报告相同问题?

悬赏问题

  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的