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 Error in check.length("fill") : 'gpar'成分'fill'的长度不能为零
  • ¥15 python:excel数据写入多个对应word文档
  • ¥60 全一数分解素因子和素数循环节位数
  • ¥15 ffmpeg如何安装到虚拟环境
  • ¥188 寻找能做王者评分提取的
  • ¥15 matlab用simulink求解一个二阶微分方程,要求截图
  • ¥30 乘子法解约束最优化问题的matlab代码文件,最好有matlab代码文件
  • ¥15 写论文,需要数据支撑
  • ¥15 identifier of an instance of 类 was altered from xx to xx错误
  • ¥100 反编译微信小游戏求指导