为你的MiniOSS起个好名字

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 关于MiniOSS的域名规划

在之前的文章中,我们介绍了阿里云的MiniOSS,一种可以完全兼容阿里公共云OSS服务的一个硬件设备,这个设备在交付形式上类似于在线下数据中心中广泛磁盘阵列,因此在成本和可维护性上相对于阿里专有云要精简太多,这里有种昔日王谢堂前燕,飞入寻常百姓家的感觉。

在向MiniOSS写入数据时有两种寻址定位方法,可以用IP地址也可以域名,两种方式的格式有一定区别:

这里的bucket是OSS的存储容器,相当于我们windows操作系统上的盘符,就像一台PC上可以有多个盘符一样,在一套MiniOSS上可以创建多个Bucket。在使用IP地址时bucket的名字放在IP地址的后面,而使用域名时bucket的名字要放在endpoint的前面。这个endpoint在公共云代表一个地域下的OSS的服务入口,而在minioss上则用来定位minioss设备本身,在我们这个例子中endpoint是oss.domainname.com,OSS的客户端通过解析这个域名来定位minioss所在的IP地址。

假如你希望写入MiniOSS的数据使用HTTPS加密传输,则需要申请对应域名的证书并绑定到MiniOSS设备上去,这个过程相当于给MiniOSS取名。因为既要定位bucket也要定位endpoint,所以我们的MiniOSS至少需要一个endpoint的域名及一个或多个bucket的域名,因为在使用域名的情况下在endpoint前加上bucket的前缀就是bucket的域名,因此这里的关键就是为endpoint来分配域名了。

因为我们的目标是申请对应域名的证书,所以站在证书的申请这个角度,我们举的这个例子oss.domainname.com 就不是一个特别好的名字,因为需要有多个bucket,所以我们需要申请的是泛域名证书,也就是*.oss.domainname.com,而以泛域名证书的匹配规则,这个证书可以匹配bucket01.oss.domainname.com、bucket02.oss.domainname.com、……,但无法匹配oss.domainname.com,也就是说三级的泛域名证书无法匹配二级域名,这样在需要对endpoint进行操作时我们还需要一个额外的单域名证书oss.domainname.com。而一套MiniOSS目前只能部署一套证书,要解决这个问题我们还需要增加一些额外的架构,这个问题我们这次暂且不展开,留到下次讨论。

能不能只申请一个证书就同时满足endpoint和多个bucket的使用需求呢,答案当然是可以的,那就是直接使用一级域名来命名endpoint,二级域名来命名bucket,举个例子:

因为根据泛域名的匹配规则,二级泛域名*.domainname.com 既能够匹配bucket01.domainname.com、bucket02.domainname.com、……也能够匹配domainname.com这个一级域名本身,这一点和三级泛域名不同。

正常情况下,我们现有的一级域名一般都已经用于门户等业务应用场景,所以,我的建议是最好为你的MiniOSS重新申请一个一级域名,并申请这个域名下的二级泛域名证书。

目录
相关文章
|
开发者
如何优雅的起个变量名?
如何优雅的起个变量名?
|
小程序 搜索推荐 开发者
如何给你的小游戏起个好名字
嗨!大家好,我是小蚂蚁。今天的这篇文章来自于我的一位学员 @Sing 的分享。很多的小游戏开发者给自己的游戏起名字完全是随性或者凭借感觉,其实给小游戏起名字是有一定的方法的,一个好的名字是能给你的小游戏带来一定的搜索自然流量的。 如果你之前起游戏名字靠的是感觉,不妨好好看一下这篇分享,按照文中的方法分析一下,自己起的游戏名字到底好不好。
143 0
如何给你的小游戏起个好名字
|
JavaScript 前端开发 Java
程序员如何给变量起名字
程序员如何给变量起名字
复制多个excel然后命名不同的名字
复制多个excel然后命名不同的名字
|
程序员 开发者 Python
命名难,难于上青天
命名难,难于上青天
96 0
|
前端开发 JavaScript 算法
你真的会代码命名吗 ? 优雅学会《如来神掌》 再也不怕不知道如何命名啦!
你真的会代码命名吗 ? 优雅学会《如来神掌》 再也不怕不知道如何命名啦!
244 0
你真的会代码命名吗 ? 优雅学会《如来神掌》 再也不怕不知道如何命名啦!
|
存储 缓存 算法
给函数起个好名字—动词选择
给函数起个好名字—动词选择
392 0
|
tengine 安全 算法
结构体定义的名字只是名字而已,还需要利用名字再定义一次
结构体定义的名字只是名字而已,还需要利用名字再定义一次
|
编译器 C语言 C++
C++中函数名字前的&或*
C++中函数名字前的&或*
739 0
C++中函数名字前的&或*