Похоже, я построил тело неправильно. Ниже приведено правильное решение, как это сделать. Я внимательно следил за сгенерированным http-кодом Postmans, чтобы создать следующий запрос:
func anonymousUpload(_ image: CGImage){
// Convert the file to base64
let base64Image:String = imageToBase64String(image)!
// Create our url
let url = URL(string: "https://api.imgur.com/3/image")!
let request = NSMutableURLRequest.init(url: url)
request.httpMethod = "POST"
request.addValue("Client-ID " + imgurAPI.CLIENT_ID, forHTTPHeaderField: "Authorization")
// Build our multiform and add our base64 image
let boundary = NSUUID().uuidString
request.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
let body = NSMutableData()
body.append("--\(boundary)\r\n".data(using: .utf8)!)
body.append("Content-Disposition: form-data; name=\"image\"\r\n\r\n".data(using: .utf8)!)
body.append(base64Image.data(using: .utf8)!)
body.append("\r\n".data(using: .utf8)!)
body.append("--\(boundary)--\r\n".data(using: .utf8)!)
request.httpBody = body as Data
// Begin the session request
let task = URLSession.shared.dataTask(with: request as URLRequest){ data, response, error in
if (error != nil){
print("error: \(error)")
return
}
print("response: \(response!)")
let responseString = NSString(data: data!, encoding: String.Encoding.utf8.rawValue)
print("response string: \(responseString!)")
}
task.resume()
}
Вы могли использовать дамп svnadmin, и svnadmin загружаются для создания нового репозитория из исходного; затем скопируйте каталог, который действительно не вписывается в Вашу схему к лучшему местоположению, затем удаляет все остальное. В исходном репозитории Вы просто удалили бы неподходящий каталог. Это сохраняет всю историю в целости, и Вы заканчиваете с двумя репозиториями.
Существует, вероятно, способ впоследствии убрать оба репозитория от тогдашних бесполезных частей истории (svndumpfilter), но так как пространство на жестком диске является довольно дешевым, я не думал бы это необходимое. Так или иначе документация SVN имеет всю информацию об этом.
Я экспортировал бы (не контроль) каталог, импортировал бы его в новый репозиторий, затем удалил бы его из оригинала (с сообщением журнала, указывающим, куда он пошел, конечно ;-).
Это может или не может быть "лучшим" способом сделать это...
Я не знаю, понимаю ли я это правильно, но существует хорошее решение этого. Если Ваш исходный репозиторий был в svn://домен, и папку, Вы используете много, называют "папкой", я полагаю, что можно просто выполнить следующую команду: svn co svn://domain/folder
к контролю только та папка.