阿里雲儲存OSS golang語言上傳檔案樣本。

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

由於阿里那邊沒有提供golang樣本只有自己寫一個,如果發現問題希望給予糾正。

配置資訊自己替換。


調用方法

Putobject("4.txt", []byte("123123fasdfasdfadfadfasfasdfsadf"))



package ossimport ("bytes""crypto/hmac""crypto/sha1""encoding/base64""fmt""io/ioutil""mime""net/http""path/filepath""time")func authorization(accesskeysecret, method, filemd5, filetype, date, CanonicalizedOSSHeaders, CanonicalizedResource string) string {h := hmac.New(sha1.New, []byte(accesskeysecret))s := fmt.Sprintf("%v\n%v\n%v\n%v\n%v%v", method, filemd5, filetype, date, CanonicalizedOSSHeaders, CanonicalizedResource)h.Write([]byte(s))return base64.StdEncoding.EncodeToString(h.Sum(nil))}var client = &http.Client{Timeout: 20 * time.Second}func Putobject(key string, b []byte) bool {url := fmt.Sprintf("http://%v.%v/%v", config.Cfg.Oss.Bucket, config.Cfg.Oss.Server, key)req, err := http.NewRequest("PUT", url, bytes.NewReader(b))if err != nil {logger.Debug("Putobject.NewRequest", err)return false} else {defer req.Body.Close()}dt := time.Now().UTC().Format("Mon, 02 Jan 2006 15:04:05 GMT")ct := mime.TypeByExtension(filepath.Ext(key))req.Header.Add("Content-Length", string(len(b)))req.Header.Add("Content-Type", ct)req.Header.Add("Date", dt)req.Header.Add("Authorization", "OSS "+config.Cfg.Oss.Keyid+":"+authorization(config.Cfg.Oss.Keysecret, "PUT", "", ct, dt, "", "/"+config.Cfg.Oss.Bucket+"/"+key))if resp, err := client.Do(req); err == nil {if resp_body, err := ioutil.ReadAll(resp.Body); err == nil {if resp.StatusCode == 200 {//for k, v := range resp.Header {//fmt.Printf("%s ==== %s\n", k, v)//}return true} else {logger.Debug("OSS錯誤返回|", url, ":", string(resp.StatusCode), ":", string(resp_body))return false}} else {logger.Debug("Putobject.ioutil.ReadAll", err)return false}} else {logger.Debug("Putobject.client.Do", err)return false}}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.