我正在使用http://godoc.org/google.golang.org/cloud/storage#Writer将文件写入 GAE 存储。io.Copy只要我尝试复制的文件大小小于 10MB,使用就会返回成功的结果。如果文件大于 10MB,我会io.Copy成功退出并写入字节数,但在我的存储桶中找不到该文件。
我在文档中找不到任何指示,因此希望获得一些社区反馈,了解他们是如何做到这一点的。这是我的代码片段:
func (s *GoogleStorage) StoreReader(r io.ReadCloser) error {
defer r.Close()
wc := storage.NewWriter(s.Context, s.Bucket, s.BackupName)
wc.ContentType = "text/plain"
wc.ACL = []storage.ACLRule{{storage.AllUsers, storage.RoleReader}}
defer wc.Close()
count, err := io.Copy(wc, r)
if err != nil {
s.app.Infof("Error doing copy:", err)
}
s.app.Infof("Bytes written: %d", count)
return err
}
我更新了上面的代码以返回更多信息:
func (s *GoogleStorage) StoreReader(r io.ReadCloser) error {
defer r.Close()
wc := storage.NewWriter(s.Context, s.Bucket, s.BackupName)
wc.ContentType = "text/plain"
wc.ACL = []storage.ACLRule{{storage.AllUsers, storage.RoleReader}}
count, err := io.Copy(wc, r)
if err != nil {
s.app.Infof("Error doing copy:", err)
}
if err := wc.Close(); err != nil {
s.app.Infof("ERROR ", err)
}
s.app.Infof("updated object:", wc.Object())
s.app.Infof("Bytes written: %d", count)
return err
}
这是我在之后得到的错误 wc.Close()
I 16:31:19.729 ERROR %!(EXTRA *url.Error=Post https://www.googleapis.com/upload/storage/v1/b/maxr-test/o?alt=json&uploadType=multipart: Call error 5: )
I 16:31:19.729 updated object:%!(EXTRA *storage.Object=<nil>)
Cats萌萌
相关分类