2016-06-16 1 views
1

Je suis le step-by-step tutorial pour le stockage dynamique dynstrg.Problèmes de connectivité "ECONNRESET" avec stockage dynamique s3 et node.js

J'ai créé une application, je l'ai liée avec le service dynstrg et j'ai créé un compartiment avec dragondisk comme décrit.

Quand j'appelle l'application sur le navigateur, je reçois l'erreur suivante:

 
{ 
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" 
} 

Mon manifest.yml se présente comme suit:

 
--- 
services: 
- denisteststorage 
applications: 
- name: denistestapp 
    memory: 128MB 
    instances: 1 
    domain: scapp-corp.swisscom.com 
    command: node app.js 
    env: 
    bucketName: denistestbucket 

Y at-il un problème avec le stockage? Ou quelqu'un peut-il me dire ce que je fais mal? (J'ai également essayé de se connecter directement avec boto3 au stockage, avec l'erreur "connexion interrompue").

Répondre

2

J'ai trouvé le problème et il semble être lié à la version du module "aws-sdk" utilisée. Suite au tutoriel, la version utilisée est "aws-sdk": "^ 2.2.9" cela provoque automatiquement le téléchargement de la dernière version d'aws-sdk, la version 2.4.0. Cette version provoque l'erreur que vous avez observée parce que, par défaut, il utilise la version de signature 4. Pour accéder à Dynamic Storage S3 (basé sur EMC ATMOS), vous devez utiliser la version de signature 2. Vous pouvez faire en changeant cette ligne sur le fichier "app.js":

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

avec cette ligne:

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

cela devrait résoudre le problème. En outre, j'ai également corrigé le tutoriel.