我正在使用 TAzureBlobService->GetBlob( ) 在 Azure 中打开文本文件。它在超过 100M 的文件上失败;它在 30 秒后失败,并显示“与服务器的连接异常终止”。文件很好,其他应用程序(在其他编译器中)很高兴。GetBlob() 是否有大小或时间阈值?
3月13日---
我已经发布了一个小表单应用程序(RAD Studio 10.2.3),它在这里演示了问题 https://www.dropbox.com/s/lbywja0f6ss4o22/GetBlobTest.zip?dl=1 它包含测试存储帐户的密钥带有三个测试文件(Test52M.txt、Test117M.txt、Test186M.txt)。小的总是成功的,中间的总是失败的,大的总是失败的。失败总是超过 30 秒,成功总是少于 30 秒。
代码只是建立了一个TAzureBlobService(zip中的key),然后核心代码是:
// Create a MemoryStream for GetBlob to fill
if(MemoryStream) delete MemoryStream;
MemoryStream = new TMemoryStream();
try
{
zUPairList props, metadata;
Service->GetBlob(CtnrName, bname, L"", 0, 0, false, props, metadata, MemoryStream, CloudResponseInfo);
}
catch (Exception &exception)
{
Result = exception.Message;
return false;
}
Result = CloudResponseInfo->StatusMessage;
return true;
(zUPairList 是长系统配对列表类的 typedef)
中间的117M有时会失败,有时会成功,所以这不是大小问题。所有失败都超过 30 秒,所以它一定是某个地方的时间限制。