Загрузка файлов с использованием Swift Vapor 3.0
Я пытаюсь создать простой сервис steam, чтобы я мог загружать видео файлы (по одному) через API.
Из моего приложения я загружаю видеофайл с помощью Alamofire:
func uploadVideo(video: URL) {
Alamofire.upload(videoFileURL, to: "http://localhost:8080/upload").responseString { response in
debugPrint(response)
}
}
Метод регулятора пара выглядит следующим образом (вот где я не знаю, как это сделать):
func upload(_ req: Request) throws -> String {
let data = try req.content.decode(Data.self).map(to: Data.self) { video in
try Data(video).write(to: URL(fileURLWithPath: "/Users/eivindml/Desktop/video.mp4"))
return Data(video)
}
return "Video uploaded";
}
Как мне получить видеофайл из запроса в нужный формат, чтобы я мог записать его на диск?
Метод upload()
вызывается правильно и т. д., так как он работает, если у меня просто последний оператор return.
1 ответ
Глядя на вашу функцию, вы обнаруживаете, что вы неправильно обрабатываете свой будущий ответ или извлекаете данные.
func upload(_ req: Request) throws -> Future<String> {
return try req.content.decode(File.self).map(to: String.self) { video in
try video.data.write(to: URL(fileURLWithPath: "/Users/eivindml/Desktop/video.mp4"))
return "Video uploaded"
}
}
Посмотрите, поможет ли это.