You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "Nicolas Leclerc (JIRA)" <ji...@apache.org> on 2014/01/14 12:55:54 UTC

[jira] [Created] (CB-5790) iOS file-transfer plugin fails to upload large files (> 200MB)

Nicolas Leclerc created CB-5790:
-----------------------------------

             Summary: iOS file-transfer plugin fails to upload large files (> 200MB)
                 Key: CB-5790
                 URL: https://issues.apache.org/jira/browse/CB-5790
             Project: Apache Cordova
          Issue Type: Bug
          Components: iOS, Plugin File Transfer
    Affects Versions: 3.3.0
         Environment: iOS 7.0.4 on an non retina iPad mini and an iPad 3.
Plugin v0.4.0
            Reporter: Nicolas Leclerc


While trying to upload large video files (> 200MB) using the file-transfer plugin upload function, i get a FILE_NOT_FOUND_ERR error.

Turns out the real error is as follows:
{quote}
Error opening file /var/mobile/Applications/1F3C6CCF-D37B-45C0-B6D2-839FA5F7C163/Documents/20140112214958-rally-vendome-aaa.session/vendome_aaa_mime_1.MOV: Error Domain=NSCocoaErrorDomain Code=256 "The operation couldn’t be completed. (Cocoa error 256.)" UserInfo=0x176ce440 {NSFilePath=/var/mobile/Applications/1F3C6CCF-D37B-45C0-B6D2-839FA5F7C163/Documents/20140112214958-rally-vendome-aaa.session/vendome_aaa_mime_1.MOV, NSUnderlyingError=0x176cbac0 "The operation couldn’t be completed. *Cannot allocate memory*"}
{quote}

Smaller files work fine so it would seem that the whole content of the file is read into memory before uploading despite using the {{NSDataReadingMappedIfSafe}} option of NSData.

I did find some reference to the fact that ios is indeed buffering the whole file into memory:
* http://www.cimgf.com/2012/02/17/extending-nsdata-and-not-overriding-dealloc/
* http://stackoverflow.com/questions/16787899/ios-load-large-file-use-memory-mapping-failed



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)