GAE Python 如何在上传时检查文件类型

1 投票
1 回答
706 浏览
提问于 2025-04-17 16:41

我正在尝试创建一个谷歌应用引擎(Python)应用,让人们可以分享文件。我已经成功实现了文件上传,但我担心的是检查文件的扩展名,确保文件是只读的,另外还要确认文件类型是否符合要求。这些文件不会是图片文件,因为我知道已经有很多图片资源了。具体来说,我想处理的是.stl网格文件,但我希望能更广泛地适用。

我知道有一些模块可以做到这一点,比如python-magic似乎可以实现,但我找不到可以导入的模块,因为它受到了LoadModuleRestricted的限制。我在考虑自己写一个解析器,但这对于一个这么常见的问题(我猜是这样)来说,会需要很多工作。

总之,我完全被难住了,这是我第一次在StackOverflow提问,希望我遵循了礼仪。如果有问题请告诉我,谢谢!

1 个回答

1

听起来你想要读取上传文件的前几个字节,以确认它的签名和声称的文件类型是否匹配。假设你是通过一个从 blobstore.get_upload_url() 获取的链接来上传文件的,那么在你被重定向到你给 get_upload_url 的上传处理程序路径后,你可以使用 BlobReader 来打开这个 blob,然后读取并验证它的签名。

Blobstore 示例应用 提供了一个框架。当你获得 blob_info 后,你可以在 UploadHandler 中添加代码(使用 blob_info.key() 来打开这个 blob)。

撰写回答