Azure队列中可以添加的base64编码字符串的最大长度是多少?

3

我需要通过Azure队列发送压缩的Base64数据,但其限制为64K。
我的代码将数据压缩后编码为Base64字符串。
我验证了压缩和编码后的字符串不超过64000字节(请参见下面的encodedLen),但当我尝试添加大小约为57,000字节的消息时,我的代码崩溃了。

var byteString = Encoding.UTF8.GetBytes(articleDataToSend);  
var compressed = QuickLZ.compress(byteString, 1);  
var encoded = Convert.ToBase64String(compressed);  

var encodedLen = Encoding.UTF8.GetByteCount(encoded);  
if(encodedLen < 64000)
{
    QueueMessage(_nlpInputQueue, encoded);
}

我正在使用Visual Studio 2012和.Net 4.5。
这里我错过了什么?

2个回答

4

1

我相信你最终是得到了一个双重编码的字符串。存储客户端库在历史上一直对放入队列中的所有内容进行base64编码,因此它会对你的base64编码的字符串进行二次编码。我的猜测是,如果你改为使用 QueueMessage(_nlpInputQueue, compressed),就可以解决这个问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接