七牛镜像的使用

摘要:
源站资源(文件/图片等)根据第一次访问自动同步到7N云存储。您可以使用绑定的自定义域名访问图像存储的源站资源。可配置搜索引擎的robots.txt文件避免了这种情况。您将在存储对象中看到相应的图像。上面的示例只是读取图像数据并输出它。您可以查看相关的php文档GD和图像处理函数。应该注意以下几点:然后图像存储将获取文件d.txt,图像存储将保存通过访问7N云存储中的URL获得的结果。

前段时间,team使用了七牛镜像的功能,用到了,就决定了解一下。

七牛官网的说明如下:

设置镜像存储,源站资源(文件/图片等)根据初次访问自动同步到七牛云存储,数据平滑迁移。可使用绑定的自定义域名访问镜像存储的源站资源。

配置镜像存储后,因为镜像源和镜像空间内容基本一致,将可能导致搜索引擎对源站进行封锁,可配置搜索引擎的 robots.txt 文件避免此情况发生。

配置方式如下:

登陆七牛,选中一个存储对象,点击存储镜像,输入镜像源,也就是你网站的地址,点击保存设置即可。页面如下:

七牛镜像的使用第1张

假设我们输入的镜像源是 http://www.cnblogs.com/CraryPrimitiveMan ,你的七牛存储对象的地址是 xxx.qiniu.com ,然后你可以访问 xxx.qiniu.com/830384/o_qiniu-page.png ,其实他最终访问的是 http://images.cnblogs.com/cnblogs_com/CraryPrimitiveMan/830384/o_qiniu-page.png ,也就是上面的那张图片。而且你会在你的存储对象中看到相应的图片。

同样如果我们的地址是一个 action,action 的作用是输出一个图片,这样的话是同样可行的。在 action 中可以使用如下 php 代码:

$filename = 'https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=gQF48ToAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL0xrUEhlbDdtUjRRXy01YUJqRzFLAAIEh7MhVwMEECcAAA==';
$src = imagecreatefromjpeg($filename);
header('Content-Type: image/jpeg');
imagejpeg($src, null, 100);
imagedestroy($src);

上面的例子只是简单的读取图片数据并输出,但在真正的项目中你可能会遇到很多图片的操作,比如两张图片合并,在图片上写入文字等等。

关于这方面的内容,你可以查看相关的php文档 GD 和图像处理函数

需要注意以下几点:

  1. 如果源站的 URL 是类似这样的:http://example.com/a/b/c/d.txt?version=20130807 ,那么镜像存储会将文件 d.txt 抓取过来,并在七牛保存为a/b/c/d.txt (在七牛云存储中称为 key),忽略问号后面的参数。如果源站的 URL 是类似这样的:http://example.com/?version=20130807 ,那么镜像存储会将访问该 URL 得到的结果保存在七牛云存储,但是保存的 key 为空的 key 值(不是不存在)。

  2. 七牛的镜像存储看起来和传统的 CDN 比较像,两种都会在加速节点数据不存在的时候回源站抓取。不同之处在于,镜像存储是存储(和普通的存储没什么不同,镜像功能只是存储的一个特性),不是缓存,故此镜像存储对每个资源来说只回源一次,后续访问的时候就不再回源了。所以源站的数据发生变化的时候,你需要主动去删除镜像存储里面的文件,从而达到强制刷新的目的。

  3. 如果终端用户第一次访问某个资源,终端用户首先从七牛服务器上访问资源,再让七牛的服务器回源站取资源,然后将取回的资源缓存在七牛云存储上。因此,第一次访问会有一定的延时,可能比从源站取稍微慢一点,这是正常的,但是第二次第三次访问就可以直接从七牛的 CDN 上取,一般情况下比从源站取资源会快很多。也正因为镜像存储第一次取资源时会有延时,因此不推荐镜像文件大小超过 5M 的大文件资源,否则第一次访问会很慢或者出现服务器超时等错误。

  4. 大多数搜索引擎都提供有能够检测镜象站点的适当的过滤系统,一旦发觉镜象站点,则源站点和镜象站点都会被从索引数据库中删除。可以给镜像空间独立上传一个 robots.txt 禁止搜索引擎索引。可使用七牛提供的:robots.txt模板文件。也可以新建一个二级域名,如img.ludou.org,把要CDN的文件放到这个二级域名下,然后将这个二级域名镜像到七牛。这样就不会镜像到主站,被搜索引擎误会了。

参考摘取:

使用七牛的镜像存储功能可能会导致网站被K
七牛的镜像存储介绍和其原理
镜像存储功能在源站 URL 含有问号时的抓取资源规则
镜像存储与 qrsync 数据同步的使用

免责声明:文章转载自《七牛镜像的使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Android Studio 自定义签名,代码段快捷键Connection reset by peer的常见原因下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Docker Toolbox安装

公司最近搭建docker环境,其中会遇到一些问题,在这里记录一下。 先来了解一下docker 一、基本概念 1.Docker中基本概念镜像(Image)  提到镜像,有对操作系统有一定认知的都知道,镜像是一个压缩的ISO文件,里面包含操作系统运行所需要的运行环境以及库文件,配置文件等等。从认识上简单的来说,镜像就是面向对象中的类,相当于一个模板。从本质上来...

npm包发布

1.创建一个包module(自定义名称)目录。2.进入此目录,执行npm init,这样就在 module 目录中生成一个符合 npm 规范的 package.json 文件。3.创建一个index.js 作为包的接口,一个简单的包就制作完成了。4.使用 npm adduser 根据提示输入用户名、密码、邮箱,创建一个账号用于维护自己的包,等待创建完成,可...

解决 Tomcat 下载文件名中包含中文的文件失败的问题

解决 Tomcat 下载文件名中包含中文的文件失败的问题 1、问题背景 在Tomcat 的 {tomcat 安装路径}/webapps/ROOT/ 目录下,创建了 file/downloads/ 目录,用于存放程序定时生成的文件。 可以实现浏览器文件下载,访问url如下: http://localhost:8080/file/downloads/test...

EC20模块(mdm9607)复用pin脚当作普通gpio的设置方法

修改pin37~40,当作普通gpio的方法如下:   下面代码截图需要确认是否一样,如不一样请修改:   修改pin41~42 ,当作普通gpio方法如下:   Pin24~27,当作普通gpio方法如下:         Pin136不建议修改。 Pin136的用法,请参考以下文件/etc/init.d/wlan:  ...

maven 配置 阿里云 镜像

<mirrors>     <mirror>       <id>nexus-aliyun</id>       <mirrorOf>*</mirrorOf>       <name>Nexus aliyun</name>       <url>h...

几种NFS系统对比,选型理由

选型需要考虑,但不限于如下几个方面: 自建 nfs 选型,moosefs,ceph,seaweedfs,lustre,glusterfs,FastDFS 等。 如何平滑迁移?大文件、软链不少,小文件较多,迁移耗时长,且迁移过程中要保证不停服运行。 要考虑做隔离,除了给平台提供服务,还会给其他产品提供服务,各自挂了不影响其他的。 容错恢复能力和监控。 h...