Node.js Azure存储节点修改默认超时设置

Node.js Azure存储节点修改默认超时设置,node.js,azure-storage,azure-storage-blobs,Node.js,Azure Storage,Azure Storage Blobs,我想知道我是否可以更改Azure Storage BlobService的默认超时设置。从文档中,我可以看到默认设置为: 每兆字节允许2分钟完成获取blob、获取页面范围或获取阻止列表的调用。如果一个操作平均每兆字节花费的时间超过2分钟,它将超时 写入blob、写入块或写入页的调用每兆字节允许完成10分钟。如果一个操作平均每兆字节花费的时间超过10分钟,它将超时 通过查看源代码,我看到BlobService.getServiceProperties和setserviceproperty与以下

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

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

  • 写入blob、写入块或写入页的调用每兆字节允许完成10分钟。如果一个操作平均每兆字节花费的时间超过10分钟,它将超时

通过查看源代码,我看到BlobService.getServiceProperties和setserviceproperty与以下两个参数一起列出:

  • @param{int}[options.timeoutitervalinms]用于请求的服务器超时间隔(以毫秒为单位)
  • @param{int}[options.maximumExecutionTimeInMs]发出此请求时,在所有可能的重试中使用的最大执行时间(以毫秒为单位)。最大执行时间间隔从客户端开始生成请求时开始。在执行请求时和执行重试之前,会间歇性检查最大执行时间
这两个参数是否等于上述各项

现在,当我尝试使用以下代码使用getServiceProperties时,除了日志记录、度量和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 }

因此,我想我确实对文档之间的不匹配以及是否可以修改任何超时设置感到困惑。

超时设置不是“与服务相关联的属性”,而是“与调用存储库相关联的属性”。timeoutitervalinms设置和maximumExecutionTimeInMs设置是可以在“options”对象上设置的参数,几乎每个操作(包括上传和下载blob)都可以传入这些参数。因此,如果要修改给定操作的超时,只需在调用库时在“options”对象上传递所需的设置

“TimeOutiterValinMS”是在向Azure存储服务发送的请求中发送的超时。这是服务在超时之前尝试完成请求所花费的时间量。这是您在此处提到的文档中的设置- 如果对存储客户端的调用向存储服务发出多个HTTP请求,则每次调用都会传递此值

“maximumExecutionTimeInMs”是客户端超时。存储客户机会在通过该API调用发出的所有存储请求中对此进行跟踪。例如,如果在客户端中配置了重试,则在每次可能的重试之前都会检查此值,并且如果自第一个请求开始以来已超过“maximumExecutionTimeInMs”,则重试将不会继续


希望这有意义。

超时设置不是“与服务相关联的属性”,而是“与调用存储库相关联的属性”。timeoutitervalinms设置和maximumExecutionTimeInMs设置是可以在“options”对象上设置的参数,几乎每个操作(包括上传和下载blob)都可以传入这些参数。因此,如果要修改给定操作的超时,只需在调用库时在“options”对象上传递所需的设置

“TimeOutiterValinMS”是在向Azure存储服务发送的请求中发送的超时。这是服务在超时之前尝试完成请求所花费的时间量。这是您在此处提到的文档中的设置- 如果对存储客户端的调用向存储服务发出多个HTTP请求,则每次调用都会传递此值

“maximumExecutionTimeInMs”是客户端超时。存储客户机会在通过该API调用发出的所有存储请求中对此进行跟踪。例如,如果在客户端中配置了重试,则在每次可能的重试之前都会检查此值,并且如果自第一个请求开始以来已超过“maximumExecutionTimeInMs”,则重试将不会继续


希望这是有意义的。

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

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

您可能还想在以下位置检查API及其选项:

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

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

您可能还想检查API及其选项:

除了我可以在每个操作中传递的options对象之外,您发布的内容是有意义的。示例调用是否为blobSvc.createBlockBlobFromLocalFile('mycontainer','myblob','test.txt',options,function(error,result,response){if(!error){//file upload}});?除了我可以通过每个操作传递的options对象之外,您发布的内容是有意义的。示例调用是否为blobSvc.createBlockBlobFromLocalFile('mycontainer','myblob','test.txt',options,function(error,result,response){if(!error){//file upload}});?隐马尔可夫模型。。这似乎对我有用…:(嗯……这对我来说似乎确实有效……:(