OSS 对象存储作为一种海量、安全、低成本、高持久的云存储服务,深受广大开发人员的喜爱。但是在全球化的业务场景中,不管 OSS 选择放于海外或者大陆地区,都会导致另外一部分用户上传和访问质量不佳的问题。
本文旨在提供一种基于 OSS 对象存储的低成本的全球加速方案。
加速域名配置自定义域名
,后续对象访问使用此域名。源站信息选择OSS 域名
, 域名类型选择自定义 OSS 源站
,域名配置为OSS 传输加速域名 {bucket}.oss-accelerate.aliyuncs.com
创建成功后会生成一个 CDN 加速域名(类似 xxx.com.w.cdngslb.com )
如果为私有 Bucket,回源配置中需要开启阿里云 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 域名回源
从上面的对比测试中,可以很明显的看出 CDN 缓存加速的网络传输质量会更好,相比于传输加速通过选择优质链路从 OSS 源站取数据,CDN 在最近边缘节点的缓存更快,更稳定。
从成本上来说,传输加速 1.6 元 /G (还不包括 OSS 访问的流量计费),而 CDN 加速的流量计费只需要 0.x/G,显然 CDN 加速更节约成本。
1
eluotao 2020-11-28 01:06:39 +08:00 via iPhone
大量文件 多种类型文件 还是要用 oss
|
2
felixin 2020-11-28 01:59:54 +08:00 via Android
意思是 oss 传输加速后再套 cdn ?
|
3
Livid MOD 这个主题已经被移动到 /go/promotions
推广软文只能发布到这个节点。 请阅读 V2EX 的节点使用规则 https://www.v2ex.com/help/node 如果持续忽略规则,你的账号将会被禁用。 |
4
xiadong1994 2020-11-28 06:42:25 +08:00 via iPhone
全球访问加速都做不好的 oss,建议换一家
|
5
kerro1990 2020-11-28 09:17:53 +08:00
S3 不香吗?
|