在Azure存储操作上设置超时

时间:2018-02-09 16:22:26

标签: c# azure azure-storage azure-table-storage azure-blob-storage

使用Azure存储时,我发现如果您使用REST,可以设置timeout on blob operationson table operations

但是我们正在使用通过WindowsAzure.Storage NuGet包(v8.4.0)提供的C#客户端。而且我没有看到任何方法来指定超时

var storageAccount = CloudStorageAccount.Parse("UseDevelopmentStorage=true;DevelopmentStorageProxyUri=http://127.0.0.1"); // local storage for testing
var blobClient = storageAccount.CreateCloudBlobClient();
var container = blobClient.GetContainerReference("mycontainer");
container.CreateIfNotExists();
var blobReference = container.GetBlockBlobReference("my/blob.pdf");

我已尝试查看CloudBlobClientStorageAccount上的可用属性/方法,但未找到任何类似超时设置的内容。

如果我可以在一个地方(在连接字符串中)设置timout并且在所有操作中使用它,那将是理想的。但是我如何在C#客户端中执行此操作?

1 个答案:

答案 0 :(得分:5)

请查看ServerTimeout类中的BlobRequestOptions属性。所以您的代码将是:

            var storageAccount = CloudStorageAccount.Parse("UseDevelopmentStorage=true;DevelopmentStorageProxyUri=http://127.0.0.1"); // local storage for testing
            var blobClient = storageAccount.CreateCloudBlobClient();
            var container = blobClient.GetContainerReference("mycontainer");
            container.CreateIfNotExists(new BlobRequestOptions()
            {
                ServerTimeout = TimeSpan.FromSeconds(90)
            });