【发布时间】:2010-11-04 13:11:10
【问题描述】:
我试图在 GAE 小组上问这个问题,但一无所获,而且我在这个问题上没有任何进展......
我有一个已安装的应用程序通过 blobstore 服务向我的 GAEj 应用程序提交文件。这一切在开发服务器上工作正常,但在生产中,blobstore 接受上传,然后使用提供给 blobstoreService.createUploadUrl() 的 URL 调用我的应用程序,正确传递我的客户端提供的所有参数以及上传的文件到此 URL,但为 blobstoreService.getUploadedBlobs() 调用返回一个空映射,此时我的应用程序崩溃,GAE 向我的客户端返回 500。如果 blobstore 在某处给出了问题所在的一些指示,这一切都将更容易调试。
另外,我在仪表板中没有看到任何已创建的 blob,因此我知道它们没有被创建。
谢谢! - - -编辑 - - - 这是一个 fiddler http 捕获的数据:
POST http://MYAPP.appspot.com/_ah/upload/?oauth_token=1%2FTRaFrr7-6m55jqdJBnFovQwS51WsrmNKmhHfTNxEWro&oauth_consumer_key=anonymous&oauth_nonce=I5HbpgtW&oauth_signature_method=HMAC-SHA1&oauth_signature=Ls7CWohqj2829nJV8bIGj2EkDCQ%3D&oauth_version=1.0&oauth_timestamp=1288878313/AMmfu6YAKuBqyq8M8zQ5hpHUAY88LJjYmbPj6Y7663GrW5qa8dYwWLWXpRHtktu_C1dyozhoH8CS2It6hjNQTbBsoFgFcERR_8680rpcv0fnZ1rl_P_0mDw/ALBNUaYAAAAATNK7QSoSJ5sWOxotMwyHoShtadRvqw8P/ HTTP/1.1
Content-Type: multipart/form-data; boundary=-----------------------------28947758029299
User-Agent: MyAppClient
Host: MYAPP.appspot.com
Content-Length: 4678
Expect: 100-continue
-------------------------------28947758029299
Content-Disposition: form-data; name="UploadToken"
aglvcGVua2xlaW9yGgsSEkdvb2dsZUFjY291bnRzVXNlchihnAEM
-------------------------------28947758029299
Content-Disposition: form-data; name="LastInChain"
True
-------------------------------28947758029299
Content-Disposition: form-data; name="CardID"
6f1e4c6a-54b6-49a6-96fc-22e08db3dde4
-------------------------------28947758029299
Content-Disposition: form-data; name="MediaType"
Image
-------------------------------28947758029299
Content-Disposition: form-data; name="HtmlKey"
img0.jpg
-------------------------------28947758029299
Content-Disposition: form-data; name="Position"
0
-------------------------------28947758029299
Content-Disposition: form-data; name="ParentID"
4d386a6e-b742-4249-a2f0-ff33a2300ff0
-------------------------------28947758029299
Content-Disposition: form-data; name="file"; filename="img0.jpg";
Content-Type: image/jpg
�����JFIF��`�`�����C�
*BINARYSTUFFREMOVEDFROMHERE*
-------------------------------28947758029299--
【问题讨论】:
-
如果您使用标准 HTML 表单上传到您的应用程序,是否一切正常?您的客户端代码似乎没有生成格式良好的上传,并且 dev_appserver 比生产代码更灵活。
-
我目前正在制作一个普通的 HTML 表单,看看是否有任何改变。我刚刚编辑了我的问题以包括文件上传的捕获。我花了很多时间将它与 RFC 的预期进行比较,看起来还不错。
-
我在仪表板日志中注意到以下内容:“POST /mediaupload HTTP/1.1”500 3791 -“MYAPP,gzip(gfe)”,所有请求似乎都包含两个数字,第一个一个是生成的 http 代码和第二个数字,在这种情况下总是“3791”,我找不到任何关于其含义的线索。这个数字可能是来自 blobstore 的一些错误代码吗?
标签: google-app-engine blobstore