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); });