cordova-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Shazron Abdullah (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CB-5790) iOS file-transfer plugin fails to upload large files (> 200MB)
Date Thu, 16 Jan 2014 17:34:20 GMT

    [ https://issues.apache.org/jira/browse/CB-5790?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13873642#comment-13873642
] 

Shazron Abdullah commented on CB-5790:
--------------------------------------

Hmm - the implementation probably needs to be re-worked to use NSFileHandle to workaround
this limitation :/ Probably won't have to pass a NSData around but the file handle, and based
on size of the file either read it all as 1 chunk or read chunk by chunk (dealloc as we go
along/autoreleasepool) and write to the stream 

> 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)

Mime
View raw message