Я получаю
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;
} );