0

快速笔记 - 我正在尝试使用 GAE 上传随机大小的文件以保存在数据存储中。

这是基本代码:

  • HTML 代码

    <iframe name="upload_iframe" src="" style="display:none;"></iframe>
    <form method="post" enctype="multipart/form-data" action="/">
      <input type="hidden" name="MAX_FILE_SIZE" value="100000" />
      <input name="data_file" size="30000" type="file" /> <input type="submit" name="submit" value="Upload" />
    </form>
    
  • Python / Django 代码

     def upload_files(request):
        if request.method == 'POST':
           logging.info(request.FILES)
           logging.info(request.FILES['data_file'])
    
        return HttpResponse('File Uploaded Successfully..')
    

测试场景

  • 如果我尝试上传 ~1 Mb 文件,它工作正常.. 返回File Uploaded Successfully

  • 如果尝试上传〜2 Mb或更多,那么它会引发MultiValueDictKeyError: "Key 'data_file' not found in <MultiValueDict: {}>":-无法找到我在这里做错了什么或使用了错误的方法..

我也提到了这个SO Question ..但它对我不起作用。

请建议您在上面考虑过..

4

1 回答 1

0

Django 将小文件上传加载到内存中,同时将大文件临时保存到磁盘。GAE 不允许访问文件系统,因此您必须将 GAE 的 blobstore 合并为存储引擎。另请参阅SO 上的这个问题

于 2013-08-06T07:35:38.973 回答