我正试图通过Cordova FileTransfer plugin直接将我的离子应用中的图像上传到亚马逊的S3存储中。 上传到我自己的Heroku服务器,但上传到Amazon S3服务器总是失败,代码= 3(连接错误)。
我正在使用此命令启动文件传输:
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
}
事情尝试了:
我已经使用离子应用设置了一个示例存储库来尝试:https://github.com/benmarten/ionic-s3-upload-test 您可以在第47行和49之间切换以查看差异(无法正常工作)。请帮忙!
答案 0 :(得分:0)
我实际上是自己找到了解决方案。在iOS9中引入了新的策略机制,因此需要更新ionic / 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