由浅入深掌握UPYUN(域名绑定+防盗链)


        上一篇文章我们已经详细的了解过了 upyun 后台的三个空间的特点和用处。如果还想详细了解的可以点击这里回顾一下。
        今天我们来仔细的探寻一下空间的各个角落,去详细的了解一下我们可以在空间后台用到哪一些功能。包括域名绑定防盗链流量分析日志查询缓存刷新等等。我们先来了解前面两个功能。

一. 域名绑定

        有些同学可能想,既然又拍云已经提供了一个三级默认域名,那绑定域名的作用体现在哪里呢? 绑定域名除了更好记外,还能和迁入又拍云之前的老系统兼容,比如说原来的图片文件使用的是 img.upyun.com,切过来以后程序就不用再去修改了。 或者自己的网页中也只出现自己的网站域名了。
        首先我们来看一遍绑定域名的步骤:在左侧菜单栏选择通用,然后点击域名绑定,然后在页面的右上角点击添加域名绑定
        域名绑定现在支持泛域名绑定,即支持绑定:*.domain.com
     
        添加完域名以后需要等待又拍云的审核。因为国情的因素,绑定的到空间的域名必须是在工信部备过案的。否则又拍云是不会审核通过的。
        又拍云的工作人员审核通过以后,我们就可以去域名服务商那里将绑定到空间的二级域名进行 cname 解析了。具体的方式如下:

在DNS解析管理中,把CNAME解析到{空间名}.b0.aicdn.com

        稍等个几分钟,等到域名解析生效以后,我们的外链就可以使用绑定的域名来代替默认域名来使用啦。

二. 防盗链

        是的,放在云上我们最担心的是什么,绝对是自己的文件被盗用,为他人做嫁衣裳。所以为了避免这种情况的发生,又拍云也提供了强大的防盗链功能,基本上覆盖了各类防盗链方式。让我们一个个来了解他们。

  • IP 禁用
            IP 禁用:在防盗链中启用 IP 禁用意味着我们可以借助这个防盗链来阻止我们添加的 IP 来访问空间的图片。点击编辑以后,跳出来如下的界面。一行一个 IP,并且支持通配符,比如10.11.12.* 将禁止 10.11.12.0~10.11.12.255 的IP访问。

     

  • 域名防盗链
            域名防盗链分域名白名单域名黑名单。我们只能选择启用其中的一种。白名单状态下只允许列表中的域名能引用外链文件。举个例子,主站为 upyunblog.com 我们设置只能这个域名访问的时候 需要设置的域名如下:

    upyunblog.com    
    *.upyunblog.com

        这样就能将该顶级域名下所有的二三级域名都包括进去了。
        同理,黑名单中的域名将被阻止引用外链。
     

  • 客户端白名单
            客户端白名单,也简称为 UA 防盗链 依据就是 User Agent字段。浏览器访问http://ua123.net/看到的字段就是了。UA 防盗链通常用在手机 APP 或者一些可自定义 User Agent 的应用,比如播放器。

        添加客户端白名单的方式也和前面差不多,同样支持通配符。

  • Token 防盗链
            Token 防盗链在所有的防盗链中设置稍微复杂一点点,需要在程序中传递若干参数来生成一个 Token。然后外链必须要带上这个 Token 才能在规定的时间内访问文件。 现在我们开始为我们的文件空间upyun-blog-file制作 Token 防盗链。

        首先,我们在 Token 防盗链界面开启 Token 防盗链,并且设置我们的密钥为:upyun然后点击保存。
    
        在这个界面中我们可以在签名方式说明中获得如何生成 Token 签名的方法。并且在代码实例中看到 PHP 语言的例子和 java语言 的例子。现在我们用简单整洁的 Python 来举个例子。
        首先我们看一下需要生成几个参数,然后一个个生成他们。
        1.key        <=====它就是我们刚刚在空间填写的密钥:upyun。
        2.etime        <=====它就是我们设定的 Token防盗链的过期时间。
        3.uri        <=====它就是我们要使用 Token 加密的文件远程路径。

    import datetime
    import time
    import hashlib
    
    if __name__ == '__main__':
        key = 'upyun'
        #获取当前 Unix 时间,并且设定过期时间为900秒
        etime = int(time.mktime(datetime.datetime.now().timetuple())) + 900
        uri =  /upyunBlogFile/miao.jpeg
        #生成 MD5。
        tokensign = hashlib.new('md5', key + '&' + str(etime) + '&' + uri).hexdigest()
        #截取32位MD5的中间八位,拼接生成 token
        token = '?_upt=' + tokensign[12:20] + str(etime)
    

        简单的 token 制作就完成了。访问的时候在原外链的基础上加上 token 就能对外链进行加密了。比如我们刚刚就依据这个代码行程了一个带着 token 的外链:http://upyun-blog-file.b0.upaiyun.com/upyunBlogFile/miao.jpeg?_upt=c86f66e11397488759 。
        没有带 token 的外链,或者超过了有效期的token链接都会返回http code:403,达到防盗链的目的。
        此外,token 防盗链还可以防止下载,特别适合网站的音视频文件的保护。用法为将 token 放入 Cookie 中。

  • 自定义提示图
            这个功能让我们自定义当服务器返回的状态码为403404405的时候的提示图。只要在这个页面上传一张自定义图就行。

    

        好了,今天我们看完了这两个功能,特别是防盗链功能,对我们的网站和应用还是密切相关的。

三. 接下来讲什么呢?

        接下来我们会继续详细的分析空间的一些细节,包括缓存刷新流量统计以及日志分析等等。


如有疑惑或者建议,欢迎评论。
如果你希望有更直接的互动,欢迎加QQ群:230558018

-NEXT-
【UPYUN © 2014 署名-非商业性使用-禁止演绎】

你可能感兴趣的:(又拍云存储)