in Sources/XCMetricsBackendLib/UploadMetrics/Repository/LogFileS3Repository.swift [67:83]
func get(logURL: URL) throws -> LogFile {
guard let bucket = logURL.host else {
throw RepositoryError.unexpected(message: "URL is not an S3 url \(logURL)")
}
let fileName = logURL.lastPathComponent
let request = S3.GetObjectRequest(bucket: bucket, key: fileName)
let fileData = try s3.getObject(request)
.map { response -> Data? in
return response.body
}.wait()
guard let data = fileData else {
throw RepositoryError.unexpected(message: "There was an error downloading file \(logURL)")
}
let tmp = try TemporaryFile(creatingTempDirectoryForFilename: "\(UUID().uuidString).xcactivitylog")
try data.write(to: tmp.fileURL)
return LogFile(remoteURL: logURL, localURL: tmp.fileURL)
}