本文主要介绍如何利用 cdn 的动态加速特性来提升客户端数据上传 bos 过程的传输速度和稳定性。
为了满足用户在使用 bos 上传数据场景中的加速需求。该功能充分发挥百度云 cdn 业界领先的架构优势,通过上传链路优化、私有协议、实时适配、智能路径切换等手段,极大地缩短了数据上行传输的时间,提高文件上传到 bos 的速率。
bos 的 cdn 动态加速加速功能可以满足客户在音频、视频、图片等多种数据上行传输应用场景下的加速需求,如:
使用 cdn 动态加速上传数据到 bos 有以下优势:
以用户上传视频、图片等二进制文件为例,使用 cdn 动态加速上传数据到 bos 的存储方案可以对上传过程优化,在有限增加成本的情况下提升上传速度和上传体验。具体的奇异果体育app竞彩官网下载的解决方案和步骤如下:
bos 提供了 console 上传、使用 api 或 sdk 上传、使用 bos cli 上传等多种上传文件的方案,目前对于 cdn 加速上传功能您可以选择使用 api 或 sdk 上传。
通过 bos api 的 putobject 接口上传数据到 bos 时,只需要将 api 请求的 host 替换为 cdn 加速域名(即您自定义的加速域名或者官方 cdn 加速域名 '/' '文件名'),即通过 cdn 加速上传。例如:
原上传请求:
put /
cdn加速上传请求:
put /
不同语言版本的 sdk 配置使用cdn加速上传的方式不同,本例以通过 go sdk 上传一个文件为例,其它语言 sdk 使用方式参考对应的 sdk 文档。
cdn-test.cdn.bcebos.com
是在控制台开通 cdn 加速上传功能之后得到的 cdn-test 这个 bucket 对应的 cdn 加速域名,代码如下:ak, sk := "xxx", "yyy"
endpoint := "cdn-test.cdn.bcebos.com"
bosclient, _ := bos.newclient(ak, sk, endpoint)
配置开启 cdn 加速上传开关,需要注意的是,cnameenabled 这个配置项表示的是是否使用自定义域名上传文件到 bos,如果你的 endpoint 是官方提供的以.cdn.bcebs.com
为后缀的加速域名,可以不配置该开关;如果你的 endpoint 是自定义加速域名,那么一定要把 cnameenabled 设置为 true 才会生效。
go
bosclient.config.cnameenabled = true
使用配置后的 bosclient 进行文件上传操作体验 cdn 加速,上传完成后检查文件是否上传成功。
go
bosclient.putobjectfromfile(bucketname, objectname, filepath, nil)
在支持配置 cdn 域名加速上传文件到 bos 的基础上,考虑到上传过程的稳定性,sdk 进一步支持了主域名上传失败时重试备用域名机制,使用方式如下:
go
// 如果使用endpoint上传文件失败,sdk会自动重试backupendpoint域名
bosclient.config.backupendpoint = "cdn-test.bj.bcebos.com"