久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

黑窗口下帶進(jìn)度條的http下載

 KyunraWang 2018-05-12
package main

import (
    "flag"
    "fmt"
    "io"
    "log"
    "net/http"
    "os"
    "strconv"
    "strings"
    "time"

    "github.com/cheggaaa/pb"
)

var (
    url = flag.String("url", "", "The download file URL.")
)

func Usage() {
    fmt.Printf("Usage of %s:\n -url=\"http://www./file.exe\": The download file URL.\n", os.Args[0])
    os.Exit(1)
}

func main() {
    flag.Parse()

    if os.Args == nil || *url == "" {
        Usage()
    }

    // 解析/后的文件名字
    urlMap := strings.Split(*url, "/")
    fileName := urlMap[len(urlMap)-1]

    // 解析帶? = fileName 的文件名字
    if strings.Contains(fileName, "=") {
        splitName := strings.Split(fileName, "=")
        fileName = splitName[len(splitName)-1]
    }

    resp, err := http.Get(*url)
    if err != nil {
        log.Fatal(err)
    }

    // 判斷get url的狀態(tài)碼, StatusOK = 200
    if resp.StatusCode == http.StatusOK {
        log.Printf("[INFO] 正在下載: [%s]", fileName)
        fmt.Print("\n")

        downFile, err := os.Create(fileName)
        if err != nil {
            log.Fatal(err)
        }
        // 不要忘記關(guān)閉打開的文件.
        defer downFile.Close()

        // 獲取下載文件的大小
        i, _ := strconv.Atoi(resp.Header.Get("Content-Length"))
        sourceSiz := int64(i)
        source := resp.Body

        // 創(chuàng)建一個(gè)進(jìn)度條
        bar := pb.New(int(sourceSiz)).SetUnits(pb.U_BYTES).SetRefreshRate(time.Millisecond * 10)

        // 顯示下載速度
        bar.ShowSpeed = true

        // 顯示剩余時(shí)間
        bar.ShowTimeLeft = true

        // 顯示完成時(shí)間
        bar.ShowFinalTime = true

        bar.SetMaxWidth(80)

        bar.Start()

        writer := io.MultiWriter(downFile, bar)
        io.Copy(writer, source)
        bar.Finish()

        fmt.Print("\n")
        log.Printf("[INFO] [%s]下載成功.", fileName)
    } else {
        fmt.Print("\n")
        log.Printf("[ERROR] [%s]下載失敗,%s.", fileName, resp.Status)
    }

 
 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多