使用Cordova FileTransfer将文件上传到Amazon S3时响应为空?

时间:2016-03-12 05:21:25

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

我正在使用Cordova FileTransfer插件在Amazon S3服务器上传图像文件。这是我执行fileTransfer

的过程
  1. 我使用photoURL调用了我的服务器并获取了提交密钥 我在params中作为键值对包含的亚马逊s3服务器
  2. 然后我使用fileTransfer插件上传包含以下代码的文件。

        var options = new FileUploadOptions();
        options.fileKey = "file";
        options.fileName = fileName;
        options.mimeType = "image/jpeg";
        options.chunkedMode = false;
        options.encodeURI= false;
    
        var headers={
            'X-Amz-Acl': 'public-read'
        };
    
        options.headers = headers;
        options.params = params;
    
        var ft = new FileTransfer();
        ft.upload(fileURL,form.action, win, fail, options) 
    
  3. 响应返回到返回json响应的win函数

        bytesSent: 31968
        objectId: ""
        response: ""
        responseCode: 204
    

    该文件未上传,我没有收到我图片的任何回复网址

  4. 我使用了'Content-Type':'image / jpeg'但它的响应412错误代码和消息 Bucket POST必须是enclosure-type multipart / form-data 。为什么这是响应,因为我特意发送使用image / jpeg内容类型?

  5. 在这里,我按照this answer的拉方法。但它失败了回归。我得到错误代码3 ,其中说明 MalformedXML ,错误说“写入错误:ssl = 0x6d3c2c20:系统调用期间的I / O错误,同级连接重置


  6. 请有人帮助我得到我在这里失踪的东西。提前谢谢。

1 个答案:

答案 0 :(得分:0)

是。对于android,响应为null,但对于iOS响应是可以的。

因此对于Android来说,工作将是

response = form.action + params.key;

以下代码足以发送文件(4,5点被忽略)

var options = new FileUploadOptions();
        options.fileKey = "file";
        options.fileName = fileName;
        options.chunkedMode = false;

        options.params = params;