코딩/GoLang

GoLang - URL에서 이미지 다운로드 하기

드리프트 2021. 2. 7. 20:57
728x170

 

 

안녕하세요?

 

고랭으로 URL에서 이미지 다운로드 하는 코드 샘플입니다.

 

많은 활용 부탁드립니다.

 

package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

var (
	fileName    string
	fullURLFile string
)

func main() {

	fullURLFile = "https://img1.daumcdn.net/thumb/C428x428/?scode=mtistory2&fname=https%3A%2F%2Ftistory4.daumcdn.net%2Ftistory%2F3074371%2Fattach%2F4258cb87d1204cdcbfc2f7ba615b870c"

	fileName = "download_image.jpg"

	// Create blank file
	file := createFile()

	// Put content on file
	putFile(file, httpClient())

}

func putFile(file *os.File, client *http.Client) {
	resp, err := client.Get(fullURLFile)

	checkError(err)

	defer resp.Body.Close()

	size, err := io.Copy(file, resp.Body)

	defer file.Close()

	checkError(err)

	fmt.Printf("Just Downloaded a file %s with size %d\n", fileName, size)
}

func httpClient() *http.Client {
	client := http.Client{
		CheckRedirect: func(r *http.Request, via []*http.Request) error {
			r.URL.Opaque = r.URL.Path
			return nil
		},
	}

	return &client
}

func createFile() *os.File {
	file, err := os.Create(fileName)

	checkError(err)
	return file
}

func checkError(err error) {
	if err != nil {
		panic(err)
	}
}

 

그리드형