Dropbox sync api大视频文件上传

时间:2014-02-13 05:05:13

标签: ios objective-c video dropbox dropbox-api

我正在使用Dropbox sync api下载文本文件,并通过我的ios应用程序从/向Dropbox上传视频文件。

我正在努力上传重型视频文件。虽然我上传的视频文件的持续时间为15到20分钟,但是上传时间正确,但是如果持续时间超过25分钟 然后它会引起内存警惕和应用程序崩溃。

我在上传按钮操作中使用此代码

DBPath *paths=[[DBPath root] childPath:[self.allVideoArray objectAtIndex:Selectedvideo]];
DBFile *createfile=[filesystem createFile:paths error:nil];
NSData  *data=[[NSData alloc]initWithContentsOfFile:self.path];
[createfile writeData:data error:nil];     
[data relese];

请帮我解决这个问题。任何帮助都应该是值得的,提前谢谢。

1 个答案:

答案 0 :(得分:1)

问题是您创建了包含整个文件的NSData实例。如果文件太大而无法放入内存,您的应用程序将崩溃。有更好的方法可以将大文件写入DBFile

由于您有本地文件的路径,您可以这样做:

DBPath *paths=[[DBPath root] childPath:[self.allVideoArray objectAtIndex:Selectedvideo]];
DBFile *createfile=[filesystem createFile:paths error:nil];
[createFile writeContentsOfFile:self.path shouldSteal:NO error:nil];

另一种选择是以较小的块读取self.path处的文件并使用DBFile appendData:error:

附注 - 您确实需要检查返回值以确保这些调用是否正常工作,并使用error参数来记录问题的原因(如果有)。