2015-11-04 76 views
2

我想直接通过Cordova FileTransfer plugin将离子应用程序中的图像上传到Amazon的S3存储。 上传到我自己的Heroku服务器,但上传到Amazon S3服务器总是失败,代码= 3(连接错误)。PhoneGapp FileTransfer上传到S3返回代码= 3但工作到Heroku

我开始用这个命令文件传输:

ft.upload(imageURI, s3Config.url, succ, fail, options, true); 

而且下列选项:

ImageURI: cdvfile://localhost/temporary/cdv_photo_044.jpg 
Upload URI: https://8d90n90q.s3.amazonaws.com 
Options: { 
    "fileKey": "file", 
    "fileName": "rndcdv_photo_044.jpg", 
    "mimeType": "image/jpeg", 
    "params": { 
    "key": "cdv_photo_044.jpg", 
    "AWSAccessKeyId": "AKIAIL6Q62UVPOESBLQA", 
    "acl": "public-read", 
    "policy": "eyJleHBpcmF0aW9uIjoiMjAxNS0xMS0wNFQwMDowMTo0MC4xMDhaIiwiY29uZGl0aW9ucyI6W1sic3RhcnRzLXdpdGgiLCIka2V5IiwiIl0sWyJzdGFydHMtd2l0aCIsIiRDb250ZW50LVR5cGUiLCIiXSx7ImJ1Y2tldCI6IjhkOTBuOTBxIn0seyJhY2wiOiJwdWJsaWMtcmVhZCJ9XX0=", 
    "signature": "BILWcf3I7IMjAXdTm0nh4Md81YI=", 
    "Content-Type": "image/jpeg" 
    }, 
    "headers": { 
    "Connection": "close" 
    }, 
    "httpMethod": "POST", 
    "chunkedMode": false 
} 

事情尝试:

  • 我已经证实,上传到S3所工程使用卷曲。
  • 我已经启用了S3上所有主机的CORS。
  • 尝试建议的解决方案:chunkedMode &标题(连接关闭)。

我已经设置与离子应用为例库尝试:https://github.com/benmarten/ionic-s3-upload-test 您可以在线4749看出差别(不工作和工作)之间切换。请帮忙!

回答

0

我其实自己找到了解决方案。随着iOS9有一个新的政策机制出台,因此人们需要更新离子/ phonegapp config.xml文件:

<access origin="*"/> 

<platform name="ios"> 
    <config-file platform="ios" target="*-Info.plist" parent="NSAppTransportSecurity"> 
    <dict> 
     <key>NSAllowsArbitraryLoads</key> 
     <true/> 
    </dict> 
    </config-file> 
</platform> 

自动填充这些配置了iOS/Android的配置文件,你可以用这个钩子: https://gist.github.com/marcocarnazzo/6f01a57d390e8fe3071f