使用谷歌云端点将文件上传到谷歌应用程序引擎应用程序
Upload file using google cloud end points to google app engine application
我在谷歌应用程序引擎上有一个用python编写的应用程序,我把这个应用程序用作用PHP编写的web应用程序的服务器,我把它用作客户端,用javascript端点调用GAE上的服务器端api。
我想使用谷歌云端点将文件从我的web应用程序上传到我的GAE应用程序。我研究过blob商店,但没有多大帮助。
请建议我该怎么做。
您必须使用云存储来存储文件,而不是Blobstore。
使用GCS是因为:
- 谷歌正在摆脱困境
- GCS提供了更多的功能,如acl、文件夹等
- 您可以为图像使用文件名和类似blobstore的服务url
- 您可以为非图像创建服务url
- GCS价格低廉,有一个免费的默认存储桶
要使用GCS,您必须使用https://cloud.google.com/appengine/docs/python/googlecloudstorageclient/
下面是一个使用API的Java示例:
GcsService gcsService = GcsServiceFactory.createGcsService();
GcsFilename filename = new GcsFilename(CONSTANTES.BUCKETNAME, unique+".jpg");
GcsFileOptions options = new GcsFileOptions.Builder()
.mimeType("image/jpg")
.acl("public-read")
.build();
GcsOutputChannel writeChannel = gcsService.createOrReplace(filename, options);
EDIT:这是像在java上一样写的(我的错误)。请随意在AppEngine上使用类似的PHP模式。
其他用户写的关于GCS的内容回答了你问题的存储部分——你肯定应该使用GCS——但就你将表格数据张贴到端点函数的想法而言,这绝对不是建议的。API调用应该是微小的数据。API应该像一架纸飞机,轻轻地飞到服务器上请求一些真实的数据。
让用户将文件上传到GCS的方法是为他们提供一个带有文件上传表单(enctype="multipart/form-data"
)的页面,其中表单action
参数是使用GCS客户端库函数createUploadUrl()
在servlet的doGet(HttpServletRequest req, HttpServletResponse resp)
方法中为页面模板生成的上传URL。你可以这样使用它:
String uploadUrl = blobstoreService
.createUploadUrl("/upload",
UploadOptions.Builder.withGoogleStorageBucketName("my_bucket"));
通过这种方式,您可以获得GCS的上传URL,用户的文件POST将转到该URL。路线/upload
是您的应用程序上的一条路线,一旦收到上传,就会重定向。您添加的任何额外表单参数对您为该路由定义的请求处理程序(servlet上的doPost()
方法)仍然可见。
有了所有这些信息,您就可以开始向用户提供文件上传表单,而无需担心它如何与云端点交互。使用端点定义javascript/Android/iOS客户端所需的API调用,而不是用于处理文件上载。
- 科尔多瓦页面类应用程序中的多个谷歌地图
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- 使用谷歌应用程序脚本从工作表中获取值并将其显示在文本框中
- 需要使用谷歌应用程序脚本列出谷歌域下的所有网站
- 从应用程序脚本检查谷歌网站访问权限
- 在谷歌应用程序脚本中转换为空格的制表符
- 如何通过谷歌应用程序脚本从谷歌文档中的位置确定命名范围
- 谷歌图表在运行应用程序时只能显示一次
- 三星智能电视应用程序使用谷歌API
- 在Ionic应用程序上使用$.getScript加载谷歌地图Api
- 谷歌应用程序脚本示例-如何更改单选按钮的列表框相关值
- 集成在 Angular2 应用程序谷歌地图 - 放置自动完成
- 将动态CSS样式应用于谷歌地图的标记
- 如何从部署为网络应用的谷歌应用脚本打开电子表格
- MVC 5 SPA 应用程序谷歌身份验证令牌处理
- 将多种颜色应用于谷歌图表中的单个元素
- 将Jquery应用于谷歌地图标记
- “评价这个应用程序”谷歌播放商店链接在离子应用程序
- 应用css谷歌recaptcha元素
- Twitter引导程序+谷歌地图仍然没有;无法修复错误