Azure Storage emulator with Nodejs createQueueService error



当我尝试连接到模拟存储队列服务时,我收到以下错误:

在 HTTP 请求"..."中找到的 MAC 签名与任何计算签名不同。

确保授权标头的值格式正确,包括签名。

这是我用来连接到 Azure 存储的方法:

    var storageAccount = 'devstoreaccount1'
    var accessKey= 'Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw=='
    var azure = require('azure-storage');
    var queueSvc = azure.createQueueService(storageAccount,accessKey);
    queueSvc.createMessage('myqueue', "Hello world!", function(error, results, response){
      if(!error){
        // Message inserted
      }
    });

我还尝试使用以下连接字符串,但没有成功:

UseDevelopmentStorage=true

DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;
AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;
BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;
TableEndpoint=http://127.0.0.1:10002/devstoreaccount1;
QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;

在生产环境中一切正常,问题仅与模拟服务有关,特别是与队列有关(模拟的 blob 按预期工作(。

知道吗?

在使用 SDK 2.8.1 测试您的代码后,我重现了您的错误。

我使用 queueSvc.logger.level = azure.Logger.LogLevels.DEBUG; 从控制台获取详细日志。此方法生成的请求 uri 为 https://devstoreaccount1.queue.core.windows.net:443/myqueue/messages ,用于在线访问名为 devstoreaccount1 的存储帐户。

若要访问存储模拟器,请执行以下操作:

var azure = require('azure-storage');
var devStoreCreds = azure.generateDevelopmentStorageCredentials();
var queueSvc = azure.createQueueService(devStoreCreds);

相关内容

  • 没有找到相关文章

最新更新