2017-02-05 2 views
0

J'essaye d'écrire un test de base pour m'assurer que mon installation de minio fonctionne correctement. J'ai écrit un test qui suit leur exemple d'utilisation d'un presigned POST policy et cela fonctionne très bien, mais je ne peux pas sembler créer un exemple de travail d'un PUT prédéfini. Je suis un 403 Forbidden avec une cause de:minio presigned mis avec des résultats superagent dans un 403

cause="Signature does not match" 
source="[objecthandlers.go:468:objectAPIHandlers.PutObjectHandler()]" 

est ici le code de test. J'ai promis l'API minio javascript et j'utilise la bande comme test harnais. Le code similaire pour la politique POST fonctionne très bien.

EDIT: Ceci est une partie importante qui a été la source du problème:

var minio = new Minio.Client({ 
    endPoint: 'minioTest',  // <- the problem 
    port: 9000, 
    secure: false, 
    accessKey: 'DONALDJTRUMP', 
    secretKey: 'DONALDJTRUMP' 
}); 

test('should be able to PUT to a presigned URL', function(assert) { 

    const filename = 'signedtest2.txt'; 

    return minio.presignedPutObjectAsync(bucket, filename, 60) 
    .then(url => { 
    assert.ok(url.length > 200, 'URL is non empty'); 
    console.log(url); 
    return agent 
    .put(url) 
    .set('Content-Type', 'text/plain') 
    .attach('file', 'test/data/test.txt'); 
    }).then(r => { 
    assert.ok(r.ok); 
    console.log(JSON.stringify(r, null, 2)); 
    }).catch(err => { 
    assert.fail('got error', err); 
    console.log(err); 
    }); 
}); 

Qu'est-ce que je fais mal qui me fait un 403 Forbidden?

Répondre

2

soit SuperAgent, minio-js ou ou le serveur minio n'aime pas avoir un caractère majuscule dans le nom d'hôte (le point final). Hélas, j'utilise docker qui attribue automatiquement les noms d'hôte et permet donc cela si vous utilisez camelCase pour les noms de conteneurs, et je viens de couper et coller le nom du conteneur.

changer cette ligne en minuscules résout le problème:

endPoint: 'miniotest',  // <- this must be lower case 

sont case insensitive donc les noms d'hôte, il ne devrait pas avoir .. J'ai compté pas identifié de quel composant il est, mais quelque chose est susceptible de contraindre Minuscules lors de la génération ou la validation de la signature et ainsi ils ne correspondent pas.

Je remarque que je n'ai pas eu à changer le conteneur de camelCase.

1

@paul Nous avons résolu ce problème et il est corrigé dans la source. Veuillez mettre à jour.