91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

黑窗口下帶進度條的http下載

發布時間:2020-06-14 03:07:37 來源:網絡 閱讀:1189 作者:codyguo 欄目:開發技術
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.xxx.com/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的狀態碼, 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)
        }
        // 不要忘記關閉打開的文件.
        defer downFile.Close()

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

        // 創建一個進度條
        bar := pb.New(int(sourceSiz)).SetUnits(pb.U_BYTES).SetRefreshRate(time.Millisecond * 10)

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

        // 顯示剩余時間
        bar.ShowTimeLeft = true

        // 顯示完成時間
        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)
    }

}


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

绩溪县| 卓尼县| 文昌市| 临夏县| 周至县| 广宗县| 大城县| 乌鲁木齐县| 榆林市| 海原县| 拜城县| 许昌县| 汶上县| 昌图县| 南木林县| 钟祥市| 延吉市| 高安市| 汉中市| 宁南县| 历史| 满城县| 淮南市| 宣威市| 牟定县| 革吉县| 疏附县| 漾濞| 哈巴河县| 普兰店市| 六安市| 金坛市| 福鼎市| 龙海市| 宝坻区| 乌兰浩特市| 安龙县| 韶关市| 泗水县| 中西区| 新密市|