SignatureDoesNotMatch error when uploading to s3 via a pre signed url using Ionic 2


I am trying to upload a video to s3 and have a pre-signed PUT url. The following is the code to do so.

import {Component} from '@angular/core';
import {NavController} from 'ionic-angular';
import {MediaCapture} from 'ionic-native';
import {Http} from '@angular/http';
import { Transfer } from 'ionic-native';

  selector: 'page-home',
  templateUrl: 'home.html'

export class HomePage {
    public base64Image: string;
    constructor(private navController: NavController, public http: Http) {
        this.base64Image = "";
    public takeVideo() {
            var link = "";

            var options: any;

            options = {
             fileKey: 'file',
             fileName: '',
             httpMethod: 'PUT',
             chunkedMode: false,
             mimeType: 'video/quicktime',
             encodeURI: false,
             headers: {
                'Content-Type': 'video/quicktime'

            var ft = new Transfer();
            ft.upload(videoData[0].fullPath, link, options, false)
                .then((result: any) => {
                }).catch((error: any) => {

        }, function(err){


I get, SignatureDoesNotMatch error. The message says, The request signature we calculated does not match the signature you provided. Check your key and signing method. I am not sure what I am doing wrong here - I looked a few other SO and Ionic questions and tried what they recommended to no avail. Any ideas on what I and doing wrong?