Разрешен только один механизм аутентификации;только параметр запроса X-Amz-Algorithm - PullRequest
0 голосов
/ 23 сентября 2019

Я получаю

400 Плохой запрос

В ответном сообщении говорится

Разрешен только один механизм аутентификации;только параметр запроса X-Amz-Algorithm, параметр строки запроса Signature или заголовок Authorization должны быть указаны

Но я не вызываю механизм аутентификации два раза.Ниже мой код.Я искал по интернету пару дней, не находя подходящего решения

Чтобы получить предопределенный URL

    AWS.config.region = 'ap-south-1';
    AWS.config.signatureVersion = 'v4';
    AWS.config.update({ accessKeyId: <accesskey>, secretAccessKey: <secretaccesskey> });

    var s3 = new AWS.S3();
    var params = {Bucket: <bucket>, Key: orderJson.name ,  Expires: 100000, ACL: 'bucket-owner-full-control', ContentType:orderJson.type}
    s3.getSignedUrl('putObject', params, function(err, url) {
        if ( err ) console.log( err );
        console.log( 'ur', url )
      var sta = {url: url}
        cb( undefined,  sta);

} );

Клиентская сторона

var mk = $( "#multipleFileSelect" )[0].files[0];
var dat = { name: mk.name, size: mk.size, type: mk.type }
Service.Upload(dat).then(function(result) {
// Mark as success
// file.Success = true;
console.log( 'rs', result )

                var req = { 
                    url: result.url,
                        method: 'PUT',
                    data: mk,
                    processData: false,
                    contentType: mk.type,
                    }
                    console.log('req' , req)

                $http( req ).then( function ( res ) { console.log( res ) },
                    function ( err ) { console.log( 'errrr', err ) } );

}, function ( error ) {
// Mark the error
$scope.Error = error;
} );
...