in Sources/Hub/HubApi.swift [121:143]
func httpHead(for url: URL) async throws -> (Data, HTTPURLResponse) {
var request = URLRequest(url: url)
request.httpMethod = "HEAD"
if let hfToken {
request.setValue("Bearer \(hfToken)", forHTTPHeaderField: "Authorization")
}
request.setValue("identity", forHTTPHeaderField: "Accept-Encoding")
let redirectDelegate = RedirectDelegate()
let session = URLSession(configuration: .default, delegate: redirectDelegate, delegateQueue: nil)
let (data, response) = try await session.data(for: request)
guard let response = response as? HTTPURLResponse else { throw Hub.HubClientError.unexpectedError }
switch response.statusCode {
case 200..<400: break // Allow redirects to pass through to the redirect delegate
case 401, 403: throw Hub.HubClientError.authorizationRequired
case 404: throw Hub.HubClientError.fileNotFound(url.lastPathComponent)
default: throw Hub.HubClientError.httpStatusCode(response.statusCode)
}
return (data, response)
}