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

时间:2012-11-27 19:29:36

标签: c# encoding azure azure-queues

我需要通过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 个答案:

答案 0 :(得分:4)

使用Base64编码时,最大邮件大小为48k http://msdn.microsoft.com/en-us/library/windowsazure/hh767287.aspx

使用Azure Service Bus Queues,您最多可以获得256k

答案 1 :(得分:1)

我相信你最终会得到一个双重编码的字符串。存储客户端库历史上基于64位编码放在队列中的所有内容,因此它是base64编码的base64编码字符串。我的猜测是,如果你改为QueueMessage(_nlpInputQueue, compressed),那就行了。