• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Golang http.Request类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Golang中github.com/forhappy/cos-go-sdk/http.Request的典型用法代码示例。如果您正苦于以下问题:Golang Request类的具体用法?Golang Request怎么用?Golang Request使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



在下文中一共展示了Request类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。

示例1: StatFolder

// 查询目录属性
//     bucket:  Bucket 名称
//     path:    目录路径
//
// 示例:
//
//    client := cos.NewClient(appId, secretId, secretKey)
//
//    res, err := client.StatFolder("cosdemo", "/hello")
//    if err != nil {
//        fmt.Println(err)
//        return
//    }
//
//    fmt.Println("Code:", res.Code,
//        "\nMessage:", res.Message,
//        "\nName:", res.Data.Name,
//        "\nBizAttr:", res.Data.BizAttr,
//        "\nCtime:", res.Data.Ctime,
//        "\nMtime:", res.Data.Mtime)
//
func (c *Client) StatFolder(bucket, path string) (*StatFolderResponse, error) {
	var cosRequest StatFolderRequest
	var cosResponse StatFolderResponse

	encodedPath := utils.UrlEncode(c.validateFolderPath(path))
	resource := c.generateResourceUrl(bucket, encodedPath)

	now := time.Now().Unix()
	strNow := fmt.Sprintf("%d", now)
	strExpires := fmt.Sprintf("%d", now+EXPIRES)
	strRand := fmt.Sprintf("%d", rand.Int31())
	signer := auth.NewSignature(c.AppId, bucket, c.SecretId, strExpires, strNow, strRand, "")
	sign := signer.Sign(c.SecretKey)

	cosRequest.Op = "stat"

	httpRequest := http.Request{
		Method:      "GET",
		Uri:         resource,
		Timeout:     c.Timeout,
		QueryString: cosRequest.Request,
	}
	httpRequest.AddHeader("Authorization", sign)
	httpResponse, err := httpRequest.Do()
	if err != nil {
		return nil, err
	}

	err = httpResponse.Body.Unmarshal(&cosResponse)
	if err != nil {
		return nil, err
	}

	return &cosResponse, nil
}
开发者ID:forhappy,项目名称:cos-go-sdk,代码行数:56,代码来源:cos.go


示例2: PrepareToUploadSlice

// 大文件分片上传(首次上传)
//     bucket:  Bucket 名称
//     dstpath: 目的文件路径, 须设置为腾讯云端文件路径
//     srcPath: 本地文件路径
//     bizAttr: 文件属性, 由业务端维护
//     session: 唯一标识此文件传输过程的id, 由后台下发, 调用方透传
//     sliceSize: 分片大小, 用户可以根据网络状况自行设置
//
// 示例:
//     client := cos.NewClient(appId, secretId, secretKey)
//
//     res, err := client.PrepareToUploadSlice("cosdemo", "/hello/hello.bin", "/Users/bigfile.bin", "file attr", "", 512 * 1024)
//     if err != nil {
//         fmt.Println(err)
//         return
//     }
//
//     fmt.Println("Code:", res.Code,
//         "\nMessage:", res.Message,
//         "\nSession:", res.Session,
//         "\nOffset:", res.Offset,
//         "\nSliceSize:", res.SliceSize,
//         "\nUrl:", res.Data.Url,
//         "\nResourcePath:", res.Data.ResourcePath,
//         "\nAccess Url:", res.Data.AccessUrl)
//
func (c *Client) PrepareToUploadSlice(bucket, dstPath, srcPath, bizAttr, session string, sliceSize int64) (*UploadSliceResponse, error) {
	var cosRequest PrepareToUploadSliceRequest
	var cosResponse UploadSliceResponse

	sha, size, err := utils.HashFileWithSha1(srcPath)
	if err != nil {
		return nil, err
	}

	encodedPath := utils.UrlEncode(c.validateFilePath(dstPath))
	resource := c.generateResourceUrl(bucket, encodedPath)

	now := time.Now().Unix()
	strNow := fmt.Sprintf("%d", now)
	strExpires := fmt.Sprintf("%d", now+EXPIRES)
	strRand := fmt.Sprintf("%d", rand.Int31())
	signer := auth.NewSignature(c.AppId, bucket, c.SecretId, strExpires, strNow, strRand, "")
	sign := signer.Sign(c.SecretKey)

	cosRequest.Op = "upload_slice"
	cosRequest.FileSize = size
	cosRequest.Sha = sha
	cosRequest.BizAttr = bizAttr
	cosRequest.Session = session
	cosRequest.SliceSize = sliceSize

	httpRequest := http.Request{
		Method:    "POST",
		Uri:       resource,
		Timeout:   c.Timeout,
		Body:      cosRequest,
		Multipart: true,
	}
	httpRequest.AddHeader("Authorization", sign)
	httpResponse, err := httpRequest.Do()
	if err != nil {
		return nil, err
	}

	err = httpResponse.Body.Unmarshal(&cosResponse)
	if err != nil {
		return nil, err
	}

	return &cosResponse, nil
}
开发者ID:forhappy,项目名称:cos-go-sdk,代码行数:72,代码来源:cos.go


示例3: ContinueUploadingSliceData

// 大文件分片上传(后续上传)
//     bucket:    Bucket 名称
//     dstpath:   目的文件路径, 须设置为腾讯云端文件路径
//     dataSlice: 本地文件路径
//     session:   唯一标识此文件传输过程的id, 由后台下发, 调用方透传
//     offset:    本次分片位移
//
// 示例:
//     client := cos.NewClient(appId, secretId, secretKey)
//
//     res, err := client.ContinueUploadingSliceData("cosdemo", "/hello/bigfile.bin", []byte("data.bin"), "c0bd94d0-3956-4664-b99f-2658eef8e5f5+CpcFEtEHAA==", 1045248)
//     if err != nil {
//         fmt.Println(err)
//         return
//     }
//
//     fmt.Println("Code:", res.Code,
//         "\nMessage:", res.Message,
//         "\nSession:", res.Session,
//         "\nOffset:", res.Offset,
//         "\nUrl:", res.Data.Url,
//         "\nResourcePath:", res.Data.ResourcePath,
//         "\nAccess Url:", res.Data.AccessUrl)
//
func (c *Client) ContinueUploadingSliceData(bucket, dstPath string, dataSlice []byte, session string, offset int64) (*UploadSliceResponse, error) {
	var cosRequest UploadSliceRequest
	var cosResponse UploadSliceResponse

	sha := utils.HashBufferWithSha1(dataSlice)

	encodedPath := utils.UrlEncode(c.validateFilePath(dstPath))
	resource := c.generateResourceUrl(bucket, encodedPath)

	now := time.Now().Unix()
	strNow := fmt.Sprintf("%d", now)
	strExpires := fmt.Sprintf("%d", now+EXPIRES)
	strRand := fmt.Sprintf("%d", rand.Int31())
	signer := auth.NewSignature(c.AppId, bucket, c.SecretId, strExpires, strNow, strRand, "")
	sign := signer.Sign(c.SecretKey)

	cosRequest.Op = "upload_slice"
	cosRequest.FileContent = string(dataSlice)
	cosRequest.Sha = sha
	cosRequest.Session = session
	cosRequest.Offset = offset

	httpRequest := http.Request{
		Method:    "POST",
		Uri:       resource,
		Timeout:   c.Timeout,
		Body:      cosRequest,
		Multipart: true,
	}
	httpRequest.AddHeader("Authorization", sign)
	httpResponse, err := httpRequest.Do()
	if err != nil {
		return nil, err
	}

	err = httpResponse.Body.Unmarshal(&cosResponse)
	if err != nil {
		return nil, err
	}

	return &cosResponse, nil
}
开发者ID:forhappy,项目名称:cos-go-sdk,代码行数:66,代码来源:cos.go


示例4: PrefixSearch

// 前缀搜索目录和文件
//     bucket:  Bucket 名称
//     path:    目录路径
//     prefix:  搜索前缀
//     context: Context 用于翻页, 需要往前/往后翻页需透传回来
//     pattern: 目录列举模式, 可选值为 Both(列举目录和文件), DirectoryOnly(仅列举目录), FileOnly(仅列举文件)
//     num:     本次拉取的目录和文件总数
//     order:   目录列举排序规则, 可选值为 Asc(正序), Desc(反序)
//
// 示例:
//
//     client := cos.NewClient(appId, secretId, secretKey)
//
//     res, err := client.PrefixSearch("cosdemo", "/hello", "A", "", cos.Both, 100, cos.Asc)
//     if err != nil {
//         fmt.Println(err)
//         return
//     }
//
//     fmt.Println("Code:", res.Code,
//         "\nMessage:", res.Message,
//         "\nContext:", res.Data.Context,
//         "\nHasMore:", res.Data.HasMore,
//         "\nDirCount:", res.Data.DirCount,
//         "\nFileCount:", res.Data.FileCount,
//     )
//
//     fmt.Println("*************************************")
//     for _, info := range res.Data.Infos {
//         fmt.Println("Name:", info.Name,
//             "\nBizAttr:", info.BizAttr,
//             "\nFileSize:", info.FileSize,
//             "\nFileLen:", info.FileLen,
//             "\nSha:", info.Sha,
//             "\nCtime:", info.Ctime,
//             "\nMtime:", info.Mtime,
//             "\nAccess URL:", info.AccessUrl,
//         )
//         fmt.Println("*************************************")
//     }
//
func (c *Client) PrefixSearch(bucket, path, prefix, context string, pattern ListPattern, num int, order ListOrder) (*ListFolderResponse, error) {
	var cosRequest ListFolderRequest
	var cosResponse ListFolderResponse

	encodedPath := utils.UrlEncode(c.validateFolderPath(path) + prefix)
	resource := c.generateResourceUrl(bucket, encodedPath)

	now := time.Now().Unix()
	strNow := fmt.Sprintf("%d", now)
	strExpires := fmt.Sprintf("%d", now+EXPIRES)
	strRand := fmt.Sprintf("%d", rand.Int31())
	signer := auth.NewSignature(c.AppId, bucket, c.SecretId, strExpires, strNow, strRand, "")
	sign := signer.Sign(c.SecretKey)

	cosRequest.Op = "list"
	cosRequest.Pattern = pattern.String()
	cosRequest.Context = context
	cosRequest.Order = order.Int()
	cosRequest.Num = num

	httpRequest := http.Request{
		Method:      "GET",
		Uri:         resource,
		Timeout:     c.Timeout,
		QueryString: cosRequest,
	}
	httpRequest.AddHeader("Authorization", sign)
	httpResponse, err := httpRequest.Do()
	if err != nil {
		return nil, err
	}

	err = httpResponse.Body.Unmarshal(&cosResponse)
	if err != nil {
		return nil, err
	}

	return &cosResponse, nil
}
开发者ID:forhappy,项目名称:cos-go-sdk,代码行数:80,代码来源:cos.go


示例5: UpdateFolder

// 更新目录属性
//     bucket:  Bucket 名称
//     path:    目录路径
//     bizAttr: 目录属性, 由业务端维护
//
// 示例:
//
//     client := cos.NewClient(appId, secretId, secretKey)
//
//     res, err := client.UpdateFolder("cosdemo", "/hello", "hello-new-attr")
//     if err != nil {
//         fmt.Println(err)
//         return
//     }
//
//     fmt.Println("Code:", res.Code,
//         "\nMessage:", res.Message)
//
func (c *Client) UpdateFolder(bucket, path, bizAttr string) (*UpdateFolderResponse, error) {
	var cosRequest UpdateFolderRequest
	var cosResponse UpdateFolderResponse

	encodedPath := utils.UrlEncode(c.validateFolderPath(path))
	fileId := c.generateFileId(bucket, encodedPath)
	resource := c.generateResourceUrl(bucket, encodedPath)

	now := time.Now().Unix()
	strNow := fmt.Sprintf("%d", now)
	strRand := fmt.Sprintf("%d", rand.Int31())
	signer := auth.NewSignature(c.AppId, bucket, c.SecretId, "", strNow, strRand, fileId)
	sign := signer.SignOnce(c.SecretKey)

	cosRequest.Op = "update"
	cosRequest.BizAttr = bizAttr

	httpRequest := http.Request{
		Method:      "POST",
		Uri:         resource,
		Timeout:     c.Timeout,
		ContentType: "application/json",
		Body:        cosRequest,
	}
	httpRequest.AddHeader("Authorization", sign)
	httpResponse, err := httpRequest.Do()
	if err != nil {
		return nil, err
	}

	err = httpResponse.Body.Unmarshal(&cosResponse)
	if err != nil {
		return nil, err
	}

	return &cosResponse, nil
}
开发者ID:forhappy,项目名称:cos-go-sdk,代码行数:55,代码来源:cos.go



注:本文中的github.com/forhappy/cos-go-sdk/http.Request类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Golang virtualmachine.Role类代码示例发布时间:2022-05-23
下一篇:
Golang goldsmith.File类代码示例发布时间:2022-05-23
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap