我尝试将应用引擎应用程序使用以下代码发布的 json 数组上传到谷歌云存储:saveData : function saveData() { var _this = this, save = this.shadowRoot.querySelector('#save-data'), subData = JSON.stringify(_this.app.userSession); save.url="url"; save.body = subData; save.go();}发布的消息与下面发布的代码一起处理。使用此代码,我可以在以用户 ID 命名的云存储桶上创建一个文件夹。我想做的是将整个 json 数组复制到文件夹中 - 即下面代码中的变量 f。我尝试使用 io.Copy(wc, f) 但它给了我以下错误:不能在 io.Copy 的参数中使用内容(类型 userData)作为类型 io.Reader:userData 没有实现 io.Reader(缺少 Read 方法)显然我做错了什么,但我很新,我完全被卡住了。有人能帮我吗?package exptimport ( "bytes" "encoding/json" "io/ioutil" "log" "net/http" "golang.org/x/net/context" "golang.org/x/oauth2" "golang.org/x/oauth2/google" "google.golang.org/appengine" "google.golang.org/appengine/file" "google.golang.org/appengine/urlfetch" "google.golang.org/cloud" "google.golang.org/cloud/storage")var bucket = "expt"func init() { http.HandleFunc("/", handleStatic) http.HandleFunc("/save", saveJson)}func handleStatic(w http.ResponseWriter, r *http.Request) { w.Header().Set("Cache-Control", "no-cache") http.ServeFile(w, r, "static/"+r.URL.Path)}type Result map[string]interface {}type userData struct { id string age string gender string}func testA(r *http.Request) userData { defer r.Body.Close() body, err := ioutil.ReadAll(r.Body) var userDataCurr userData if err != nil { log.Printf("Couldn't read request body: %s", err) } else { var f Result err := json.Unmarshal(body, &f) if err != nil { log.Println("Error: %s", err) } else { user := f["user"].(map[string]interface{}) userDataCurr.id = user["id"].(string) } } return userDataCurr}
1 回答
- 1 回答
- 0 关注
- 179 浏览
添加回答
举报
0/150
提交
取消