我试图找出从JavaScript启动的HTTP请求上传/下载二进制数据到Google AppEngine的Blobstore的最低数据开销方式。理想情况下,我想直接提交二进制数据,即未编码的8位值;也许在一个POST请求,看起来是这样的:通过HTTP请求将二进制数据上传到AppEngine Blobstore
...
Content-Type: multipart/form-data; boundary=boundary;
--boundary
Content-Disposition: form-data; name="a"; filename="b"
Content-Type: application/octet-stream
@#^%(^Qtr...
--boundary--
这里,@#^%(^Qtr...
最好代表任意8位二进制数据。
具体来说,我想了解以下信息:
- 是否有可能直接上传8位二进制数据,或者我需要对数据进行编码以某种方式,就像一个基地64 MIME编码?
- 如果我使用不同的编码,Blobstore会将数据保存为8位二进制内部还是编码格式?即一个base-64编码会将我的存储成本增加33%?
- 沿着同样的道路:编码开销是否会增加出站带宽成本?
- 有没有更好的方法来格式化POST请求,所以我不需要想出一个
boundary
,它不会出现在我的二进制数据中?例如。有没有办法指定一个Content-Length而不是一个边界? - 在获取数据的GET请求中,我是否可以简单地希望二进制数据在返回字符串中结束,还是服务器将以某种方式自动编码数据?
- 如果我需要使用一些编码,那么对于基本上随机的8位数据,支持的选项中哪一个最好? (2碱-64,UTF-8,成才人)