Alamofire загружает огромный файл

Я использую Alamofire для загрузки активов (изображений / видео) в виде многостраничных данных. Он отлично работает для файлов размером менее 300 МБ (приложение). Когда я пытаюсь загрузить файл размером более 300 МБ, приложение аварийно завершает работу.

if let video = self.avPlayerItem?.asset as? AVURLAsset { if let assetData = NSData(contentsOfURL: video.URL) { multipartFormData.appendBodyPart(data: assetData, name: "file", fileName: "video", mimeType: "video/mp4") // Execution stops here } } 

Я также получаю следующее сообщение от Xcode

введите описание изображения здесь

Как я могу поддерживать загрузку огромных видеороликов с помощью Alamofire?

Используйте Stream для загрузки вместо преобразования файла в NSData, что приводит к проблеме с памятью и происходит сбой при загрузке огромных файлов. образец кода

  if let imageUrl = info[UIImagePickerControllerReferenceURL] as? NSURL{ let assetLibrary = ALAssetsLibrary() assetLibrary.assetForURL(imageUrl , resultBlock: { (asset: ALAsset!) -> Void in if let actualAsset = asset as ALAsset? { let assetRep: ALAssetRepresentation = actualAsset.defaultRepresentation() let size = assetRep.size() let stream = NSInputStream(URL: assetRep.url()) Alamofire.upload( .POST, "SERVER_URL", headers: [:], multipartFormData: { multipartFormData in multipartFormData.appendBodyPart(stream: stream!, length: UInt64(size), name: "fileparameter", fileName: "fileName", mimeType: "video/mp4") }, encodingCompletion: { encodingResult in switch encodingResult { case .Success(let upload, _, _): upload.progress { bytesWritten, totalBytesWritten, totalBytesExpectedToWrite in dispatch_async(dispatch_get_main_queue()) { let percent = (Float(totalBytesWritten) / Float(totalBytesExpectedToWrite)) print(percent) } } upload.validate() upload.responseJSON { response in print(response); } case .Failure(let encodingError): print(encodingError) let error = NSError(domain: "", code: 404, userInfo: [NSLocalizedDescriptionKey: "Image Uploading Failed. Please try again."]) let result = Result<AnyObject, NSError>.Failure(error) let response = Response(request: nil, response: nil, data: nil, result: result) print(response); } } ) } }, failureBlock: { (error) -> Void in }) } в  if let imageUrl = info[UIImagePickerControllerReferenceURL] as? NSURL{ let assetLibrary = ALAssetsLibrary() assetLibrary.assetForURL(imageUrl , resultBlock: { (asset: ALAsset!) -> Void in if let actualAsset = asset as ALAsset? { let assetRep: ALAssetRepresentation = actualAsset.defaultRepresentation() let size = assetRep.size() let stream = NSInputStream(URL: assetRep.url()) Alamofire.upload( .POST, "SERVER_URL", headers: [:], multipartFormData: { multipartFormData in multipartFormData.appendBodyPart(stream: stream!, length: UInt64(size), name: "fileparameter", fileName: "fileName", mimeType: "video/mp4") }, encodingCompletion: { encodingResult in switch encodingResult { case .Success(let upload, _, _): upload.progress { bytesWritten, totalBytesWritten, totalBytesExpectedToWrite in dispatch_async(dispatch_get_main_queue()) { let percent = (Float(totalBytesWritten) / Float(totalBytesExpectedToWrite)) print(percent) } } upload.validate() upload.responseJSON { response in print(response); } case .Failure(let encodingError): print(encodingError) let error = NSError(domain: "", code: 404, userInfo: [NSLocalizedDescriptionKey: "Image Uploading Failed. Please try again."]) let result = Result<AnyObject, NSError>.Failure(error) let response = Response(request: nil, response: nil, data: nil, result: result) print(response); } } ) } }, failureBlock: { (error) -> Void in }) } 
  • iOS 8 и segues бросают неожиданное исключение
  • Как вы используете MBProgressHUD CustomView / Определить загрузчик в Swift?
  • подготовка к segue не работает должным образом
  • Использование заголовков CocoaPods и Obj-C
  • Отслеживание местоположения пользователя, когда приложение завершено
  • XCode 8 странная ошибка игровой площадки, не удалось найти символы
  • Проверка кода NSE: двоичный оператор '==' не может применяться к двум операндам Int
  • Как вращать узел перпендикулярно другому узлу после контакта с физикой
  • Изменение размера изображения uiview зависит от текста
  • Разверните только ячейку, которая была удалена
  • Как установить разные цвета для точек на LineChart на диаграммах ios?
  • Interesting Posts

    Есть ли способ включить / выключить bluetooth в iPhone программно?

    Формы Xamarin с Microsoft IOS

    Интерактивная интерактивная UILocalNotification – Obj-C

    Сообщения JSQ Avatar Изображение не загружено из-за сбоя обработчика завершения

    Два scrollView должны перемещаться вместе одним касанием в любом scrollView

    Восстановление моментального снимка Xcode ничего не делает

    Можно ли отправить push-уведомление из одного приложения iOS в другое приложение iOS?

    Как создать класс модели в Objective C ++?

    заполнять данные NSArray Json

    Модель сервера покупки в приложении

    warning: Parse Issue: использование расширения указателя поля в стиле старого GNU

    Доступ или обращение к UIImageView с viewController

    Используйте OpenCV для обнаружения текстовых блоков для отправки в Tesseract iOS

    Опубликовать ссылку на Facebook не показывать изображение с изображением ссылки?

    Как снимать видео 4K с помощью UIImagePickerController на совместимых iPhone?

    Давайте будем гением компьютера.