zoukankan      html  css  js  c++  java
  • get.go

    package api

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

    const bufferSize = 512 * 1024
    //获取空间文件
    func Get(host string, port int, vid uint64, fid uint64, filename string) ([]byte, error) {
        url := fmt.Sprintf("http://%s:%d/%d/%d/%s", host, port, vid, fid, filename)
        resp, err := http.Get(url)
        if err != nil {
            return nil, err
        }
        defer resp.Body.Close()

        if resp.StatusCode == http.StatusOK {
            return ioutil.ReadAll(resp.Body)
        }else {
            return nil, fmt.Errorf("%d != 200", resp.StatusCode)
        }
    }
    //获取空间文件   指定字节区间
    func GetRange(host string, port int, vid uint64, fid uint64, filename string, start int, length int) ([]byte, error) {
        url := fmt.Sprintf("http://%s:%d/%d/%d/%s", host, port, vid, fid, filename)
        req, _ := http.NewRequest(http.MethodGet, url, nil)
        req.Header.Set("Range", fmt.Sprintf("bytes=%d-%d", start, start + length - 1))
        resp, err := http.DefaultClient.Do(req)
        if err != nil {
            return nil, err
        }
        defer resp.Body.Close()

        if resp.StatusCode == http.StatusPartialContent {
            return ioutil.ReadAll(resp.Body)
        }else {
            return nil, fmt.Errorf("%d != 200", resp.StatusCode)
        }
    }

  • 相关阅读:
    函数的扩展
    数组的扩展
    event(1)
    面试
    iframes
    浏览器CSS兼容
    BFC
    简单的一个轮播效果
    asp.net identity 2.2.0 在WebForm下的角色启用和基本使用(二)
    我的web框架设计
  • 原文地址:https://www.cnblogs.com/zhangboyu/p/7461602.html
Copyright © 2011-2022 走看看