Azure存储NodeJS修改默认超时设置

我想知道是否有可能为我更改Azure存储BlobService的默认超时设置。 从文档我可以看到,默认设置是:

  • 调用blob,获取页面范围或获取阻止列表允许每兆字节2分钟完成。 如果一个操作平均每兆字节花费的时间超过2分钟,则会超时。

  • 调用写一个blob,写一个块,或写一个页面,每兆字节允许10分钟完成。 如果平均每兆字节操作超过10分钟,则超时。

通过源代码看,我看到BlobService.getServiceProperties和setServiceProperties与这两个参数列出:

  • @param {int} [options.timeoutIntervalInMs]用于请求的服务器超时间隔(以毫秒为单位)。
  • @param {int} [options.maximumExecutionTimeInMs]执行此请求时使用的所有潜在重试的最大执行时间(以毫秒为单位)。 最大执行时间间隔从客户端开始构build请求时开始。 在执行请求时,在执行重试之前,会间歇性地检查最大执行时间。

这两个参数是否等于上面的项目?

现在,当我尝试使用下面的代码使用getServiceProperties时,除了日志logging,度量和Cors数据之外,我没有给出任何信息。 这是Github页面上说的

blobSvc.getServiceProperties(function(error, result, response) { if (!error) { console.log('Result: ', result); console.log('Response: ', response); } else { console.log(error); } }); Result: { Logging: { Version: '1.0', Delete: false, Read: false, Write: false, RetentionPolicy: { Enabled: false } }, HourMetrics: { Version: '1.0', Enabled: true, IncludeAPIs: true, RetentionPolicy: { Enabled: true, Days: 7 } }, MinuteMetrics: { Version: '1.0', Enabled: false, RetentionPolicy: { Enabled: false } }, Cors: {} } Response: { isSuccessful: true, statusCode: 200, body: { StorageServiceProperties: { Logging: [Object], HourMetrics: [Object], MinuteMetrics: [Object], Cors: '' } }, headers: { 'transfer-encoding': 'chunked', 'content-type': 'application/xml', server: 'Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0', 'x-ms-request-id': '45a3cfeb-0001-0127-0cf7-0149a8000000', 'x-ms-version': '2015-02-21', date: 'Thu, 08 Oct 2015 18:32:36 GMT', connection: 'close' }, md5: undefined } 

所以真的我想我对文档之间的不匹配感到困惑,如果甚至可以修改任何超时设置。

带有超时选项的示例调用是:

 var options = { maximumExecutionTimeInMs: 1000 }; blobSvc.createBlockBlobFromLocalFile('mycontainer', 'myblob', 'test.txt', options, function(error, result, response) { if(!error) { // file uploaded } }); 

您可能还想查看API和他们的选项: http : //azure.github.io/azure-storage-node/BlobService.html

超时设置不是“与服务相关的属性”,而是“与调用存储库相关联的属性”。 timeoutIntervalInMs设置和maximumExecutionTimeInMs设置是您可以在“选项”对象上设置的参数,可以通过几乎所有操作(包括上传和下载Blob)来传入。 所以,如果您想修改给定操作的超时时间,只需在调用库时传递“options”对象上的所需设置。

“timeoutIntervalInMs”是在对Azure存储服务的请求中发送的超时。 这是服务在超时前尝试完成请求的时间。 这是您在此处提到的文档中的设置 – https://msdn.microsoft.com/en-us/library/azure/dd179431.aspx如果对Storage Client的调用向Storage Service发出多个HTTP(S)请求,每次通话都会传递这个值。

“maximumExecutionTimeInMs”是客户端超时。 这是由Storage Client通过从单个API调用所做的所有存储请求进行跟踪的。 例如,如果您在客户端中configuration了重试次数,则将在每次潜在重试之前检查此值,并且如果自第一个请求开始以来已超过“maximumExecutionTimeInMs”,则重试将不会继续。

希望这是有道理的。