2

動的ストレージ dynstrg の段階的なチュートリアルに従っています。

アプリを作成し、それをサービス dynstrg にリンクし、説明どおりに Dragondisk でバケットを作成しました。

ブラウザでアプリを呼び出すと、次のエラーが表示されます。

{
メッセージ:「ECONNRESETを読んでください」、
コード: "NetworkingError",
errno: "ECONNRESET",
システムコール: "読み取り",
リージョン: "eu-west-1",
ホスト名: "denistestbucket.ds31s3.swisscom.com",
再試行可能: true、
時刻: "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 に答える