У меня возникают проблемы с попыткой отправить запрос CORS от суперагента к Amazon S3 для загрузки файла. Во-первых, я запрашиваю политику у сервера node.js. Я возвращаю объект JSON следующим образом:
{
s3PolicyBase64: '',
s3Signature: '',
s3Key: '',
s3ObjectKey: 'ftriana3185/inputData/input_fdc2f7f4b050c5884e5ac60a43bfc0d8ff26d549.csv' }
Затем я пытаюсь из суперагента использовать политику, возвращенную узлом, для загрузки локального файла. Мой код выглядит так:
it('GET /inputFiles/s3Credential', function(done) {
var csvPath = './files/inputFileResource/countrylist.csv';
var request = {};
request.ext = 'csv';
clientAgent.get(localPath + '/inputFiles/s3Credential').send(request).end(function(response) {
var s3PolicyBase64 = response.body.s3PolicyBase64;
var s3Signature = response.body.s3Signature;
var s3Key = response.body.s3Key;
var s3ObjectKey = response.body.s3ObjectKey;
var request = clientAgent.post('bucket-name.s3.amazonaws.com')
.type('form')
.field('key', s3ObjectKey)
.field('AWSAccessKeyId', s3Key)
.field('acl', 'public-read')
.field('policy', s3PolicyBase64)
.field('signature', s3Signature)
.attach('mycsv', csvPath).end(function(response){
console.log(response);
});
});
});
Я уверен, что проблема в форме, в которой я делаю запрос от суперагента, потому что у меня также есть html-форма, которая отлично работает. Итак, как правильно использовать суперагент для этой цели?