【问题标题】:GAE Python how to check file type on uploadGAE Python如何在上传时检查文件类型
【发布时间】:2013-02-21 21:47:17
【问题描述】:

所以,我正在尝试创建一个允许人们共享文件的谷歌应用引擎 (python) 应用。我的文件上传运行良好,但我担心的是检查文件扩展名并确保文件是只读的,其次,它们是指定的文件类型。这些不会是图像文件,因为它们已经是很多图像资源。具体来说,.stl 网格文件,但我希望能够更普遍地做到这一点。

我知道有些模块可以做到这一点,例如 python-magic 似乎能够做到这一点,但我似乎找不到任何可以在没有 LoadModuleRestricted 的情况下导入的模块。我正在考虑编写自己的解析器,但对于这样一个常见的(我假设的)问题来说,这将是很多工作。

无论如何,我完全被难住了,所以这是我的第一个 stackoverflow 问题,所以希望我在礼仪方面做得很好。告诉我,谢谢!

【问题讨论】:

  • 如果是图片,这里可能有一些链接:stackoverflow.com/questions/889333/…
  • 对不起,不是图片,我会更新问题
  • 我的印象是 mimetypes 模块只查看扩展名。我担心潜在的恶意可执行文件只是具有无辜的扩展名。不过我可能是错的。这个问题是我了解 python-magic 模块的地方,但它仅限于 appengine。

标签: python google-app-engine parsing upload


【解决方案1】:

听起来您想读取上传文件的前几个字节,以验证其签名是否与声称的 mime 类型匹配。假设您正在上传到 blobstore(即,通过从 blobstore.get_upload_url() 获得的 url,那么一旦您被重定向到您提供给 get_upload_url 的路径的上传处理程序,您就可以使用 BlobReader 打开 blob,然后阅读并验证签名。

Blobstore sample app 列出了框架。一旦你有blob_info(使用blob_info.key() 打开blob),你就会在UploadHandler 中粘贴代码。

【讨论】:

    猜你喜欢
    • 2013-01-04
    • 2010-09-23
    • 2011-10-08
    • 2012-01-29
    • 1970-01-01
    • 1970-01-01
    • 2015-07-21
    • 1970-01-01
    • 2015-06-28
    相关资源
    最近更新 更多