我正在关注动态存储dynstrg的分步教程。
我创建了一个应用程序,将其与Service Dynstrg链接在一起,并如上所述创建了带有Dragondisk的存储桶。
当我在浏览器上调用应用程序时,我会收到以下错误:
{消息:"读取Econnreset",代码:" NetworkingError",Errno:" Econnreset",Syscall:"读",区域:"欧盟 - 西1",主机名:" denistestbucket.ds31s3.swisscom.com",重试:是的,时间:" 2016-06-16T10:15:42.670Z"}
我的清单。看起来如下:
---服务: - DenistestStorage应用程序: - 名称:DenistEstapp 内存:128MB 实例:1 域:scapp-corp.swisscom.com 命令:node app.js env: bucketname:denistestbucket
存储空间有问题吗?还是可以告诉我我做错了什么?(我还尝试将BOTO3直接连接到存储,而错误"中止连接")。
我发现了这个问题,它似乎与使用的模块" aws-sdk"的版本有关。在教程之后,使用的版本是" AWS-SDK":"^2.2.9",这会自动导致最新的AWS-SDK版本(2.4.0版本)下载。此版本会导致您观察到的错误,因为默认情况下它使用签名版本4。要访问动态存储S3(基于EMC Atmos。可以在此处找到文档),有必要使用签名版本2。您可以通过在文件" app.js"上更改此行来执行此操作:
var s3Client = new AWS.S3({endpoint: endpoint});
使用此行:
var s3Client = new AWS.S3({endpoint: endpoint, signatureVersion: 'v2'});
这应该解决问题。此外,我还修复了教程。