第一次的go訪問七牛雲端儲存的api

來源:互聯網
上載者:User

標籤:des   style   blog   http   color   使用   

官網看api,如何使用,對於第一次使用go語言的我略顯吃力,嘿嘿,看了個demo就會了,而且超簡單

package main


import (
    "fmt"
    . "github.com/qiniu/api/conf"
    "github.com/qiniu/api/fop"//這個地方是坑,網上的api。如果下載下來,請改本地地址,這裡是網路地址,而且官網沒提示要引用下面幾個
    "github.com/qiniu/api/io"
    "github.com/qiniu/api/rs"
    "log"
)

func init() {

    ACCESS_KEY = "自己建立帳號密鑰產生的"
    SECRET_KEY = "自己建立帳號密鑰產生的"
}

//GET upload access token
func uptoken(bucketName string) string {
    putPolicy := rs.PutPolicy{
        Scope: bucketName,
        //CallbackUrl: callbackUrl,
        //CallbackBody:callbackBody,
        //ReturnUrl: returnUrl,
        //ReturnBody: returnBody,
        //AsyncOps: asyncOps,
        //EndUser: endUser,
        //Expires: expires,
    }
    return putPolicy.Token(nil)
}

func main() {
    //上傳本地檔案
    upload()

    //5.1 擷取檔案資訊
    //getFileInfo()

    //6.1.1 查看映像屬性
    //imageAttr()

    //5.2 刪除檔案
    //delFile()

}

//6.1.1 查看映像屬性
func imageAttr() {
    var imageUrl = "http://attach.qiniudn.com/pic.jpg"
    ii := fop.ImageInfo{}
    infoRet, err := ii.Call(nil, imageUrl)
    if err != nil {
        // 產生錯誤
        log.Println("fop getImageInfo failed:", err)
        return
    }

    log.Println(infoRet.Height, infoRet.Width, infoRet.ColorModel, infoRet.Format)
}

func makeImageInfoUrl(imageUrl string) string {
    ii := fop.ImageInfo{}
    return ii.MakeRequest(imageUrl)
}

//5.2 刪除檔案
func delFile() {
    bucket := "自己建立的空間名稱"
    key := "goupload.jpg"
    var rsCli = rs.New(nil)

    err := rsCli.Delete(nil, bucket, key)
    if err != nil {
        // 產生錯誤
        log.Println("rs.Copy failed:", err)
        return
    }
}

//5.1 擷取檔案資訊
func getFileInfo() {
    var ret rs.Entry
    bucket := "attach"
    key := "goupload.jpg"
    var rsCli = rs.New(nil)

    ret, err := rsCli.Stat(nil, bucket, key)

    if err != nil {
        // 產生錯誤
        log.Println("rs.Stat failed:", err)
        return
    }

    // 處理返回值
    log.Println(ret)
}

//上傳本地檔案
func upload() {
    uptoken := uptoken("自己建立的空間名稱")
    fmt.Printf("uptoken:%s\n", uptoken)

    var err error
    var ret io.PutRet
    var extra = &io.PutExtra{
    //Params: params,
    //MimeType: mieType,
    //Crc32: crc32,
    //CheckCrc: CheckCrc,
    }

    var key = "kane2.jpg"
    var localFile = "/root/Desktop/kane.jpg"

    // ret 變數用於存取返回的資訊,詳情見 io.PutRet
    // uptoken 為商務服務器產生的上傳口令
    // key 為檔案儲存體的標識
    // localFile 為本地檔案名稱
    // extra 為上傳檔案的額外資訊,詳情見 io.PutExtra,可選
    err = io.PutFile(nil, &ret, uptoken, key, localFile, extra)

    if err != nil {
        //上傳產生錯誤
        log.Print("io.PutFile failed:", err)
        return
    }

    //上傳成功,處理返回值
    log.Print(ret.Hash, ret.Key)

}

有個響應遲鈍的bug,這裡調用了api,但是圖形介面上沒有顯示調用的次數

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.