Golang download bitrix backup

package main import ( "fmt" "io" "net/http" "os" "strings" ) func main() { fmt.Println("start") url := "https://site.com/bitrix/backup/123.tar" for i := 0; i < 100; i++ { if i == 0 { downloadFile(url) } else { newUrl := fmt.Sprintf("%s.%d", url, i) downloadFile(newUrl) } } } func downloadFile(url string) { fmt.Println("Скачиваю ", url) // Создаем HTTP-запрос req, err := http.NewRequest("GET", url, nil) if err != nil { fmt.Println("Не удалось создать запрос:", err) return } // Выполняем запрос resp, err := http.DefaultClient.Do(req) if err != nil { fmt.Println("Не удалось выполнить запрос:", err) return } defer resp.Body.Close() // Получаем имя файла из заголовков ответа /* filename := resp.Header.Get("Content-Disposition") if filename == "" { // Если имя файла не указано в заголовках, то сгенерируем его случайным образом filename = "file.zip" } */ urlArray := strings.Split(url, "/") filename := urlArray[len(urlArray)-1] // Создаем файл на диске file, err := os.Create(filename) if err != nil { fmt.Println("Не удалось создать файл:", err) return } defer file.Close() // Записываем содержимое файла в созданный файл на диске _, err = io.Copy(file, resp.Body) if err != nil { fmt.Println("Не удалось записать данные в файл:", err) return } fmt.Println("Файл успешно скачан и сохранен:", filename) }