From 6e9ccfa47b8402d682889c34b4a89b8b7a6a2687 Mon Sep 17 00:00:00 2001 From: Jungpyo Hong <54448459+jphong1111@users.noreply.github.com> Date: Mon, 3 May 2021 06:47:22 -0500 Subject: [PATCH] Add files via upload --- Helper/VideoManager.swift | 41 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 Helper/VideoManager.swift diff --git a/Helper/VideoManager.swift b/Helper/VideoManager.swift new file mode 100644 index 0000000..a211ca4 --- /dev/null +++ b/Helper/VideoManager.swift @@ -0,0 +1,41 @@ +// +// VideoManager.swift +// DispatchDemoApp +// +// Created by JungpyoHong on 4/29/21. +// + +import Foundation +import PhotosUI + +struct VideoManager { + + func downloadVideoLinkAndCreateAsset(_ videoLink: String) { + + guard let videoURL = URL(string: videoLink) else { return } + guard let documentsDirectoryURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first else { return } + if !FileManager.default.fileExists(atPath: documentsDirectoryURL.appendingPathComponent(videoURL.lastPathComponent).path) { + URLSession.shared.downloadTask(with: videoURL) { (location, response, error) -> Void in + guard let location = location else { return } + let destinationURL = documentsDirectoryURL.appendingPathComponent(response?.suggestedFilename ?? videoURL.lastPathComponent) + do { + try FileManager.default.moveItem(at: location, to: destinationURL) + PHPhotoLibrary.requestAuthorization({ (authorizationStatus: PHAuthorizationStatus) -> Void in + if authorizationStatus == .authorized { + PHPhotoLibrary.shared().performChanges({ + PHAssetChangeRequest.creationRequestForAssetFromVideo(atFileURL: destinationURL)}) { completed, error in + if completed { + print("Video asset created") + } else { + print("error") + } + } + } + }) + } catch { print(error) } + }.resume() + } else { + print("File already exists at destination url") + } + } +}