销售电话: 1-800-867-1380

为 BLOB 服务操作设置超时

更新时间: 2011年10月

每次 BLOB 服务 API 调用都可以包含一个超时间隔,超时间隔有两种不同使用方式。

  • 如果处理请求时达到超时间隔,BLOB 服务会返回错误。

  • 如果使用的是存储客户端,则在超时间隔内未从服务收到 HTTP 状态代码响应时将引发异常。超时仅适用于接收状态代码,而不适用于接收消息正文或完成将数据传输到客户端的操作。

对 BLOB 服务的 REST 调用的默认超时间隔为 30 秒。30 秒也是 BLOB 服务操作的最大超时间隔,下面是一些例外情况。BLOB 服务会将更长的超时缩短为 30 秒。默认情况下,存储客户端对大多数 BLOB 服务调用指定 90 秒超时。如果 BLOB 服务在 30 秒内无法准备正确响应,它将返回一个错误,如果存储客户端没有收到响应,它将等待 90 秒,然后引发异常。

使用 Microsoft.WindowsAzure.StorageClient.BlobRequestOptions.Timeout 可以为单个 Blob 请求设置超时间隔,使用 Microsoft.WindowsAzure.StorageClient.CloudBlobClient.Timeout 可以为所有 Blob 存储客户端设置默认超时间隔。

以下示例 REST URI 将列出容器操作的超时间隔设置为 20 秒:

GET https://myaccount.blob.core.windows.net?comp=list&timeout=20

下面的 C# 示例将单个 Blob 下载的存储客户端的超时设置为 5 分钟:

BlobRequestOptions largeBlobDownloadOptions = new BlobRequestOptions()
{
  Timeout = TimeSpan.FromMinutes(5) // Larger timeout for larger file
};
blob.DownloadToFile(largeBlobDownloadOptions);

下面的操作是标准 30 秒超时间隔的例外情况:

  • 获取 Blob、获取页面范围或获取块列表的调用允许每 MB 有 2 分钟完成时间。如果一项操作的每 MB 平均时间超过 2 分钟,就会超时。

  • 编写 Blob、编写块或编写页面的调用允许每 MB 有 10 分钟完成时间。如果一项操作的每 MB 平均时间超过 10 分钟,就会超时。

  • 编写块列表的最大超时为 60 秒。

  • 最近删除的容器不能重新创建,直到其所有 Blob 都被删除。根据容器中存储的数据多少不同,完成删除可能需要若干秒或若干分。如果在此清除阶段试图创建同名容器,调用将立即返回错误。

另请参阅

本文是否对您有所帮助?
(1500 个剩余字符)
感谢您的反馈
显示:
© 2014 Microsoft