[英]Error using loopback-storage-component to upload/download files to azure storage
我正在使用LoopBack存储组件将文件上传和下载到Azure云存储中,如其文档所示
我已经在model-config.json中创建了一个名为container的模型
"container": {
"dataSource": "storage",
"public": true
}
在datasouce.json中使用数据源
"storage": {
"name": "storage",
"connector": "loopback-component-storage",
"provider": 'azure',
"storageAccount": "xxxxx",
"storageAccessKey": "xxxx"
}
现在,我有一个REST API,如其文档中所述。 这是我每次调用生成的GET / api / containers端点之一时遇到的错误。
{
"error": {
"name": "Error",
"status": 400,
"message": "azure Error (400): Bad Request",
"provider": "azure",
"failCode": "Bad Request",
"statusCode": 400,
"href": "http://xxxx.blob.core.windows.net/?comp=list",
"method": "GET",
"headers": {
"content-type": "application/xml",
"server": "Microsoft-HTTPAPI/2.0",
"x-ms-request-id": "820995fc-0001-013e-7b9a-48de28000000",
"date": "Sun, 27 Nov 2016 10:40:02 GMT",
"cache-control": "proxy-revalidate",
"content-length": "328",
"connection": "close"
},
"result": {
"err": "<?xml version=\"1.0\" encoding=\"utf-8\"?><Error><Code>InvalidHeaderValue</Code><Message>The value for one of the HTTP headers is not in the correct format.\nRequestId:820995fc-0001-013e-7b9a-48de28000000\nTime:2016-11-27T10:40:02.3522933Z</Message><HeaderName>x-ms-version</HeaderName><HeaderValue>2011-08-18</HeaderValue></Error>"
}
}
}
搜索此错误后,我找到了这个答案,我的问题是我是否必须手动设置标头以及如何设置标头,或者缺少用于回送存储组件的天蓝色存储的配置。
我将这段代码添加到common / models / container.js中,并且得到了相同的错误。
module.exports = function(Container) {
Container.beforeRemote('**', function(context, user, next) {
//2015-12-11
context.res.set('x-ms-version', '2015-12-11');
next();
});
};
我已经与您在model-config.json
和datasouce.json
使用相同的配置测试了example-2.0 ,它在我这边工作正常,无需进行任何其他配置或附加的代码修改。
您能否提供有关所用环境和sdk版本的更多详细信息。 您可以尝试更新您的依赖项,我测试中的依赖项是:
"dependencies": {
"compression": "^1.0.3",
"errorhandler": "^1.1.1",
"loopback": "^2.0.0",
"loopback-boot": "^2.0.0",
"loopback-component-explorer": "^2.1.0",
"loopback-component-storage": "^1.5.0",
"loopback-datasource-juggler": "^2.7.0",
"serve-favicon": "^2.0.1"
}
最后,您可以尝试在https://github.com/pkgcloud/pkgcloud/blob/master/lib/pkgcloud/azure/utils/ pkgcloud
change 2011-08-18
的源代码修改为2015-12-11
constants.js#L2048
如有任何其他疑问,请随时告诉我。
问题出在存储部署类型中。 我使用Azure经典部署模型创建了存储,但是当我将部署模型更改为“ Azure Resource Manager”时,它运行良好。 区别可以在这里找到。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.