ngCordova FileTransfer直接上传到AWS S3 WebKitFormBoundary问题

我正尝试使用ngCordova FileTransfer插件在AWS-S3上使用预先签名的url上载文件。

我成功地将file upload到AWS-S3,但文件的内容包含在内

------WebKitFormBoundarylCFgJXqqECF1rJ2m Content-Disposition: form-data; name="file"; filename="75cae09191bd92a16c3ff05baeb88b9b.jpg" Content-Type: image/jpeg

由此导致图像文件无法打开。 我如何摆脱我的文件中的这个头。 我有一个想法,如果我把一个二进制数据,而不是forms的数据,它会摆脱这一点,因为我已经在POSTMANtesting它,但无法find任何方式来做cordova文件传输。

  $cordovaFileTransfer.upload(s3SignedUrl, imagePathOnPhone, { fileKey: "file", fileName: localFileName, httpMethod: "PUT", mimeType: 'image/jpeg' }) .then(function (result) { console.log(result); }, function (error) { console.log(error); }, function (progress) { console.log(progress); }); 

我的桶在法兰克福地区和API v4。 我在服务器上使用nodejs。

尝试将Content-Type属性添加到params部分。

 $cordovaFileTransfer.upload(s3SignedUrl, imagePathOnPhone, { fileKey: "file", fileName: localFileName, httpMethod: "PUT", mimeType: 'image/jpeg', params: { "Content-Type": "image/jpeg" } }) .then(function (result) { console.log(result); }, function (error) { console.log(error); }, function (progress) { console.log(progress); }); 

尝试添加"Content-Type": "image/jpeg"opts.headers以禁用multipart:

 $cordovaFileTransfer.upload(s3SignedUrl, imagePathOnPhone, { fileKey: "file", fileName: localFileName, httpMethod: "PUT", mimeType: 'image/jpeg', headers: { "Content-Type": "image/jpeg" } }) .then(function (result) { console.log(result); }, function (error) { console.log(error); }, function (progress) { console.log(progress); });