Ich versuche, einen grundlegenden Test zu schreiben, um sicherzustellen, dass meine Minioinstallation korrekt funktioniert. Ich schrieb einen Test, der ihrem Beispiel folgt, eine presigned POST policy zu verwenden, und es funktioniert gut, aber ich kann nicht scheinen, ein Arbeitsbeispiel eines vordefinierten PUT zu erstellen. Ich habe eine 403 Forbidden
mit einer Ursache:minio presigned setzen mit superagenten Ergebnissen in einem 403
cause="Signature does not match"
source="[objecthandlers.go:468:objectAPIHandlers.PutObjectHandler()]"
Hier ist der Testcode. Ich habe die Minio-Javascript-API angekündigt und verwende Band als Test-Kabelbaum. Ein ähnlicher Code für die POST-Richtlinie funktioniert einwandfrei.
EDIT: Dies ist ein wichtiger Teil, der die Quelle des Problems war:
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);
});
});
Was mache ich falsch, dass ich eine 403 Forbidden bekommt?