我正在关注step-by-step tutorial动态存储dynstrg。
我创建了一个应用程序,将其与服务dynstrg链接,并按照描述创建了一个带有dragondisk的存储桶。
当我在浏览器上调用应用程序时,出现以下错误:
{ message: "read ECONNRESET", code: "NetworkingError", errno: "ECONNRESET", syscall: "read", region: "eu-west-1", hostname: "denistestbucket.ds31s3.swisscom.com", retryable: true, time: "2016-06-16T10:15:42.670Z" }
我的manifest.yml看起来如下:
--- services: - denisteststorage applications: - name: denistestapp memory: 128MB instances: 1 domain: scapp-corp.swisscom.com command: node app.js env: bucketName: denistestbucket
存储存在问题吗?或者任何人都可以告诉我我做错了什么? (我还尝试将boto3直接连接到存储器,错误“连接中止”)。
答案 0 :(得分:2)
我发现了问题,它似乎与模块的版本有关" aws-sdk"用过的。 在本教程之后,使用的版本是" aws-sdk":" ^ 2.2.9"这会自动导致下载最新的aws-sdk版本2.4.0版本。 此版本会导致您观察到的错误,因为默认情况下它使用签名版本4.要访问Dynamic Storage S3(基于EMC ATMOS。文档可以找到here),必须使用签名版本2。 您可以通过更改文件" app.js":
上的这一行来完成此操作var s3Client = new AWS.S3({endpoint: endpoint});
这一行:
var s3Client = new AWS.S3({endpoint: endpoint, signatureVersion: 'v2'});
这应该可以解决问题。 另外,我还修复了教程。