我编写了一个Cygwin应用程序,它将(使用REST API PUT操作)Block Blobs上传到我的Azure存储帐户,并且在使用HTTP时它适用于不同大小的blob。但是,对于大于5.5MB的Blob,使用SSL(即使用HTTPS的PUT)会失败。正确上传小于5.5MB的Blob。任何更大的东西,我发现TCP会话(由Wireshark看到)报告一个缩小的窗口大小,一旦传输上述字节数,该大小变为0。失败是可重复和一致的。作为参考,当针对各种对象大小使用HTTPS时,针对我的Google / AWS / HP云存储帐户的PUT操作正常工作,这表明问题不是我的客户端,而是特定于MSAZURE存储服务器上的HTTPS实现。
如果我上传5.5MB blob作为两个单独的4MB和1.5MB上传后跟PUT阻止列表,只要两个上传使用单独的HTTPS会话,操作就会成功。注意强调分开。如果我尝试在两个上载中维护HTTPS会话,则相同的操作将失败。
为什么我会在MS Azure中看到这种奇怪的行为?使用HTTPS的相同PUT操作适用于AWS / Google / HP云存储服务器。
答案 0 :(得分:1)
感谢您举报此事,对于给您带来的不便,我们深表歉意。我们设法重新创建了这个问题并提交了一个错误。遗憾的是,我们目前无法共享修复的时间表,但我们将在部署修复程序时回复此论坛。与此同时,合理的解决方法(以及推荐的最佳实践)是将大型上传内容分解为较小的块(使用Put Block和Put Block List API),从而使客户端能够并行化上载。
答案 1 :(得分:0)
此错误现已修复,操作现在应按预期完成。