阿里云存储OSS golang语言上传文件示例。
来源:互联网 发布:网页游戏网络加速器 编辑:程序博客网 时间:2024/05/16 13:50
由于阿里那边没有提供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}}
0 0
- 阿里云存储OSS golang语言上传文件示例。
- 文件上传-阿里云OSS-存储文件
- 阿里云oss post上传文件 JavaScript代码示例 $.ajax()
- 阿里云OSS 上传文件
- 阿里云OSS 文件上传
- 阿里云存储OSS中设置上传文件content type
- 阿里云oss对象存储图片上传
- 阿里oss文件上传
- 阿里云上传文件,下载文件 oss
- 阿里云对象存储OSS--实现随时随地上传文件到阿里云
- 阿里云对象存储OSS配置介绍设置,上传代码示例
- 整合阿里云OSS文件上传1
- 整合阿里云OSS文件上传2
- OSS阿里云文件上传 demo
- Jfinal版阿里云OSS文件上传
- 阿里云OSS上传文件工具类
- android 阿里云OSS文件上传
- java 上传文件到oss(阿里云)
- [leetcode] 412. Fizz Buzz 解题报告
- android短信验证码自动填充
- ld:framework not found Pods__ clang: error: linker command faild with code 1
- 运用两个栈实现队列
- php语言的核心知识点
- 阿里云存储OSS golang语言上传文件示例。
- [Server]App-Retrofit上传文件
- mssql 为查询结果增加编号
- Spring入门篇之Bean容器的初始化
- 简单学正则表达式re模块-python
- android studio 引入so文件 出现找不到so文件的解决办法
- Queueing at Bank
- 如何让一段代码tomcat启动就运行
- AJAX入门基础