2

我正在关注动态存储 dynstrg的分步教程

我创建了一个应用程序,将其与服务 dynstrg 链接,并按照描述创建了一个带有 dragondisk 的存储桶。

当我在浏览器上调用应用程序时,出现以下错误:

{
消息:“读取 ECONNRESET”,
代码:“网络错误”,
错误号:“ECONNRESET”,
系统调用:“读取”,
地区:“eu-west-1”,
主机名:“denistestbucket.ds31s3.swisscom.com”,
可重试:真,
时间:“2016-06-16T10:15:42.670Z”
}

我的 manifest.yml 如下所示:

---
服务:
 -denisteststorage
应用:
- 名称:denistestapp
  内存:128MB
  实例:1
  域名:scapp-corp.swisscom.com
  命令:节点 app.js
  环境:
     桶名:denistestbucket

存储有问题吗?或者谁能​​告诉我我做错了什么?(我还尝试将 boto3 直接连接到存储,但出现错误“连接中止”)。

4

1 回答 1

3

我发现了问题,它似乎与使用的模块“aws-sdk”的版本有关。按照教程,使用的版本是 "aws-sdk": "^2.2.9" 这会自动导致下载最新的 aws-sdk 版本,即 2.4.0 版本。此版本会导致您观察到的错误,因为默认情况下它使用签名版本 4。要访问 Dynamic Storage S3(基于 EMC ATMOS。可以在此处找到文档),必须使用签名版本 2。您可以这样做通过更改文件“app.js”上的这一行:

var s3Client = new AWS.S3({endpoint: endpoint});

用这条线:

var s3Client = new AWS.S3({endpoint: endpoint, signatureVersion: 'v2'});

这应该可以解决问题。此外,我还修复了教程。

于 2016-06-16T21:43:18.693 回答