rest - 使用 go API 在 blobstore 上上传文件

标签 rest google-app-engine go blobstore

我尝试在 blobstore 上添加文件,我发现了一些使用 go 的示例,但这些是使用 html 模板的示例,我现在从调用我的 api 的 react-native 应用程序发送图像,以在 blobstore 上添加文件。

那么如何使用我在 go 中通过 r.FormFile() 获取的文件在 blobstore 上添加文件?

我找到的例子:

func sampleHandler(w http.ResponseWriter, r *http.Request) {
    // [START uploading_a_blob_2]
    var rootTemplate = template.Must(template.New("root").Parse(rootTemplateHTML))

    const rootTemplateHTML = `
<html><body>
<form action="{{.}}" method="POST" enctype="multipart/form-data">
Upload File: <input type="file" name="file"><br>
<input type="submit" name="submit" value="Submit">
</form></body></html>
`
    // [END uploading_a_blob_2]

    // [START uploading_a_blob_1]
    ctx := appengine.NewContext(r)
    uploadURL, err := blobstore.UploadURL(ctx, "/upload", nil)
    if err != nil {
        serveError(ctx, w, err)
        return
    }
    w.Header().Set("Content-Type", "text/html")
    err = rootTemplate.Execute(w, uploadURL)
    if err != nil {
        log.Errorf(ctx, "%v", err)
    }
    // [END uploading_a_blob_1]
}

谢谢 :)

最佳答案

我的建议是提供一个小型 JSON API,您的 React Native 应用程序可以调用它,它将返回一个由 blobstore.UploadURL 生成的上传 URL。然后,您应该能够正常 POST 到 URL。

关于rest - 使用 go API 在 blobstore 上上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38055758/

相关文章:

java - Spring Boot - 模拟对外部 API 的 POST REST 请求

google-app-engine - 无法为 eclipse (indigo) 安装 google app engine 插件

java - 出现 4** 错误时的 postForEntity 异常

rest - 如何使用长 URL 实现 RESTful?

validation - 如果用户尝试使用错误的用户名/密码登录,但格式正确,返回的适当 HTTP 状态代码是什么?

javascript - 任何人都可以在云中成功部署 GAE Spring BOOT 应用程序吗

python - Google App Engine 代码优化

go - Go 中的延迟似乎会增加延迟

go - 可以将 protobuf 编码消息发送到已分配的字节数组而无需复制吗?

apache - 多线程如何影响 http keep-alive 连接?