在Google App Engine(GAE)平台上,Blobstore是一种专门用于存储大对象,如图片、视频或任何二进制大数据的高可用性服务。Blobstore API为开发者提供了方便的方式来处理这些大文件的上传和访问,无需担心容量和性能问题。本Demo将向您展示如何在GAE上使用Blobstore进行文件上传。 1. **Blobstore简介** Blobstore是Google App Engine中的一个关键特性,它允许应用程序无限制地存储和检索大文件。与标准的数据存储服务相比,Blobstore特别适合存储非结构化数据,例如用户上传的多媒体文件。Blobstore的存储机制是分布式且自动扩展的,因此它能够很好地应对高流量和大量数据的场景。 2. **使用Blobstore API** 在GAE中,Blobstore提供了一组Python API,让开发者可以轻松集成文件上传功能。需要导入`google.appengine.ext.blobstore`模块,然后使用`create_upload_url()`函数生成一个特殊的URL,这个URL可以用于文件上传。 3. **创建上传URL** `create_upload_url()`函数接收一个目标处理程序,当用户完成文件上传后,GAE会将请求转发到这个处理程序。处理程序负责处理上传后的文件元数据,例如文件名、大小等。 4. **处理文件上传** 用户上传文件后,处理程序通过`blobstore.BlobInfo.get()`获取文件信息,包括文件名、内容类型、上传时间等。`fetch_data()`方法则用于获取文件的实际内容。 5. **Web表单集成** 要让用户能够在Web界面中选择并上传文件,需要在HTML表单中指定`enctype="multipart/form-data"`,并设置`action`属性为Blobstore生成的上传URL。表单提交时,GAE会接管文件上传过程。 6. **安全与权限控制** 为了确保只有授权的用户才能上传文件,可以在处理程序中添加身份验证逻辑。同时,Blobstore的URL具有时间限制,过期后将无法上传,这提供了额外的安全保障。 7. **删除Blobstore中的文件** Blobstore中的文件默认不支持直接删除,但可以通过记录文件的BlobKey并在需要时清理相关数据来实现逻辑删除。或者,可以创建一个新的Blobstore服务,并在旧服务不再需要时停止它,从而达到清理旧文件的目的。 8. **Demo应用"TestBlobstore"** "TestBlobstore"是一个简单的应用示例,包含前端HTML页面用于文件选择和上传,以及后台处理程序来处理上传请求。源代码可能包含一个`main.py`文件,用于定义处理程序和生成上传URL,以及一个HTML模板文件,用于显示表单和处理结果。 9. **部署与测试** 部署这个Demo应用到GAE,你可以使用`appcfg.py`或`gcloud`命令行工具。部署完成后,通过访问应用的URL,就可以测试文件上传功能了。 通过学习和实践这个Demo,开发者将能够熟练掌握在GAE上利用Blobstore进行文件上传的流程,这对于构建需要处理大量用户生成内容的Web应用至关重要。
- 1
- cyzealy2015-02-21能用 不过也就是tutorial上面的东西copy下来吧
- 粉丝: 46
- 资源: 11
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助