cordova文件传输到s3 AWS返回501错误

时间:2016-09-29 22:21:47

标签: cordova amazon-web-services file-upload amazon-s3

我正按照这个非常简单的方法将图片从fileURI上传到亚马逊

 window.resolveLocalFileSystemURI(fileURI, function(fileEntry) {
        fileEntry.file(function(fileObj) {
          console.log("Size = " + fileObj.size);

          var options = new FileUploadOptions();
          options.chunkedMode = false;
          options.httpMethod = 'PUT';
          options.headers = {
            'Content-Type': 'image/jpeg',
            'Content-Length' : fileObj.size
          };

          var ft = new FileTransfer();
          constructSignedUrl(picname, 'put').then(function (url) {
            console.log(url)
            ft.upload(fileURI, url,
              function (res) {
                deferred.resolve();
              },
              function (error) {
                deferred.reject();
              },
              options);
          });
        });
      });

constructSignedUrl(picname,'put')是一个构造预签名url的方法。它正在工作,我测试它与邮递员很好

服务器返回此错误

Message>A header you provided implies functionality that is not implemented</Message><Header>Transfer-Encoding</Header>

似乎文件上传传输正在添加标题,我无法摆脱它,我该如何解决这个问题?

更新:检查charles代理上的负载时,我看到标题

Transfer-Encoding   chunked

仍然存在,如何覆盖它。我已经将chunked模式设置为false。

1 个答案:

答案 0 :(得分:2)

好的我在cordova-file-transfer版本1.6.0上遇到了同样的问题

执行1.5.1版解决了我的问题。 我猜这个错误有与之相关的事情 https://github.com/apache/cordova-plugin-file-transfer/pull/141

反正:

cordova plugin add cordova-file-transfer@1.5.1 为我工作