我正在尝试使用以下代码将存储在 GAE blobstore 中的 JPEG 文件读回字节数组:
info,_ := blobstore.Stat(context,appengine.BlobKey(request.FormValue("blobkey")))
image := make([]byte,info.Size)
reader := blobstore.NewReader(context,appengine.BlobKey(request.FormValue("blobkey")))
n,nerr := reader.Read(image)
图像存储正确,即它可以使用 blobstore.Send(...) 提供。
上面的代码可以正常工作(因为它确实读回了 blob 数据),但它将任何 0x0a 字节转换为 0x0d 0x0a 对(即 LF 到 CR LF)。
Go 中有没有办法解决这种行为(无需编写过滤器将 0x0d0a 转换回 0x0a)?
编辑:
事实证明,问题根本不在于 Blobstore.Reader,而在于开发应用服务器上 mail.py 中的附件编码。