Как результат кодогенераций сохранить в архив и сразу его отдать?

Всем привет.
Есть рестовое API, при обращении в определенный эндпойт планируется делать несколько кодогенераций, и результаты в виде уже готовых файлов класть в архив и отдавать запрашиваемому. Как результат кодогенераций сохранить в архив и сразу его отдать?
  • Вопрос задан
  • 139 просмотров
Решения вопроса 1
WinPooh32
@WinPooh32
Stack Overflow answer searching expert
https://golang.org/pkg/archive/zip/

Пример с одним файлом:
func handle(w http.ResponseWriter, r *http.Request){
	fileToZip, _ := os.Open("filepath")
	defer fileToZip.Close()

	// NewWriter returns a new Writer writing a zip file to w.
	zipWriter := zip.NewWriter(w)
	defer zipWriter.Close()

	info, _ := fileToZip.Stat()

	header, _ := zip.FileInfoHeader(info)

	// Change to deflate to gain better compression
	// see http://golang.org/pkg/archive/zip/#pkg-constants
	header.Method = zip.Deflate

	// CreateHeader adds a file to the zip archive using the provided FileHeader
	// for the file metadata. 
	// This returns a Writer to which the file contents should be written.
	writer, _ := zipWriter.CreateHeader(header)
	io.Copy(writer, fileToZip)
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы