Подписанный URL-адрес AWS S3 кодирует полученный SignatureDoesNotMatch

Я использую передачу файлов Cordova для загрузки файла с aws s3 с использованием подписанного URL-адреса, поскольку передача файлов Cordova кодирует uri, «%» в подписи преобразуется в «% 25», таким образом, приводит к несоответствию подписи


person Inayath Ebrahim    schedule 19.06.2015    source источник


Ответы (1)


Попробуйте настроить параметры следующим образом:

options = {
            fileKey: 'file',
            fileName: name,
            chunkedMode: false,
            mimeType: 'audio/3gpp',
            httpMethod: 'PUT',
            // Important!
            headers: {
                'Content-Type': 'audio/3gpp' // < Set explicitly otherwise it becomes multipart/form-data which won't work with S3
            },
            encodeURI: false // < Stops any extra encoding by file transfer logic
        }

Мне потребовалось много мучительных часов, чтобы получить предварительно подписанные PUT, работающие с Cordova / S3. Удачи.

person derekdon    schedule 11.08.2015
comment
Эта проблема возникает с плагином ng-cordova. По этому поводу есть проблема: github.com/driftyco/ng-cordova/issues/835< /а> - person pyb; 26.12.2015