谷歌应用引擎:上传文件和其他领域在相同的要求

2024-04-19 04:04:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我想上传一个图像到blobstore,因为我想支持大于1MB的文件。现在,我能找到的唯一方法是让客户机发布一个POST,它在那里发送元数据,比如地理位置、标记等等,服务器将这些元数据放在一个实体中。在这个实体中,服务器还将一个blob的密钥放在实际图像数据要存储的位置,服务器通过将create\u upload\u url()返回的url返回给客户端来结束请求。这可以很好地工作,但是我可以得到不一致性,例如如果第二个请求从未发出,因此blob从未被填充。实体现在指向一个空blob。你知道吗

我能看到的解决这个问题的唯一方法是触发一个延迟任务,该任务将检查blob是否曾经被上传填充。我不太喜欢这个解决方案,所以我猜是否有人有更好的解决方案。你知道吗


Tags: 文件数据方法标记图像实体服务器url
1条回答
网友
1楼 · 发布于 2024-04-19 04:04:32

我经历了完全相同的思考过程,但在Java中,最终使用了ApacheCommonsFileUpload。我不熟悉Python,但您只需要一种处理multipart/form-data上传的方法。你知道吗

我将图像和附加字段一起上传,使用JQuery组装多部分表单数据,然后将其POST上传到服务器。你知道吗

在服务器端,我获取文件并使用Google Cloud Storage client library(Python链接)将其写入Google云存储。这可以在一个块中完成,如果是一个大文件,也可以“流式”完成。一旦它在GCS中,你的appengine应用程序就可以使用同一个库来读取它,或者你可以直接用一个公共URL来提供它,这取决于你设置的ACL。你知道吗

相关问题 更多 >