OSS对象存储做为一种海量、安全、低成本、高持久的云存储服务,深受广大开发人员的喜好。可是在全球化的业务场景中,无论OSS选择放于海外或者大陆地区,都会致使另一部分用户上传和访问质量不佳的问题。php
本文旨在提供一种基于OSS对象存储的低成本的全球加速方案。html
自定义域名
,后续对象访问使用此域名。源站信息选择OSS域名
, 域名类型选择自定义OSS源站
,域名配置为OSS传输加速域名 {bucket}.oss-accelerate.aliyuncs.com
阿里云OSS私有Bucket回源
,访问控制-开启URL鉴权
,填写主备KEY
!将自定义域名CNAME解析到刚才配置后获得的CDN加速域名缓存
/** * CND鉴权-A方案的签名 * * @param string $host eg. https://mall.xxx.com * @param string $path eg. resume/110/abc.jpg * @param string $args eg. ?x-oss-process=image%2Fauto-orient%2C1%2Fresize%2Cw_160 * @param string $key 鉴权的key * @param int $expireAt 过时时间戳 * @return string */ function sign($host, $path, $args, $key, $expireAt) { $path = Str::startsWith($path, '/') ? $path : "/$path"; $path = implode('/', array_map('urlencode', explode('/', $path))); $rand = '0'; $uid = '0'; $str = sprintf('%s-%s-%s-%s-%s', $path, $expireAt, $rand, $uid, $key); $hash = md5($str); $authKey = sprintf('%s-%s-%s-%s', $expireAt, $rand, $uid, $hash); $symbol = $args ? '&' : '?'; return sprintf('%s%s%s%sauth_key=%s', $host, $path, $args, $symbol, $authKey); }
本次测试以3种方案进行对比测试,测试的图片为948KB。安全
1.命令缓存网络
2.OSS传输加速域名回源架构
OSS域名回源dom
从上面的对比测试中,能够很明显的看出CDN缓存加速的网络传输质量会更好,相比于传输加速经过选择优质链路从OSS源站取数据,CDN在最近边缘节点的缓存更快,更稳定。测试
从成本上来讲,传输加速1.6元/G(还不包括OSS访问的流量计费),而CDN加速的流量计费只须要0.x/G,显然CDN加速更节约成本。ui