2015-11-04 78 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