如何用云存储和CDN加速网站图片视频、阿里云OSS的使用(转)

news/2024/5/20 11:10:00/文章来源:https://blog.csdn.net/weixin_34007020/article/details/86234264

总有人说阿里云主机带宽小,那只是因为你还停留在单机架构上。

阿里的架构设计,云主机主要用来跑程序的,附件的存储和访问主要靠OSS。

有人又会说了,OSS按存储费+流量双重计费伤不起,只是你不知道OSS有免费额度,另外可以通过CDN来大幅节约流量,甚至可以反代回云主机实现内网免流量。长远来讲能节省一大笔费用。

 

 

 

“无图无真相,有视频更好”。一般来说,网络用户都喜欢图片和视频,而不喜欢读干巴巴的文字。这看似单纯的意愿,却让网站的开发者和维护人员叫苦不 迭——图片、视频等内容占用了一个网站的很多存储、带宽资源。是时候把图片、视频迁移到云存储,来释放被压得喘不过气的服务器和带宽了!

 

下面以一个网站的图片存储为例,来逐步了解如何使用开放存储服务(Open Storage Service,简称OSS)。

 

开放存储服务

 

要使用OSS,需要先在http://oss.aliyun.com网站上注册,注册成功后,即可在网站上的OSS管理中心创建bucket,上传、下载自己的object。

 

bucket是用户数据的命名空间,例如图片可以放到一个bucket中,视频放到另外一个bucket中。一个bucket存储的总数据量和文件 个数都是无限制的。存储在bucket中的每个文件,称之为object。存储在object中的数据可以是任意内容,OSS不会去处理object中的 数据。

 

对于每个bucket,OSS容许设置三种访问权限,即私有读写(private)、公开读私有写(public-read)、公开读写 (public-read-write)。对于私有读写和私有写的权限,OSS使用API密钥对(AccessID/AccessKey)来保证你的数据 只能被你自己安全访问,所以千万不要向任何人泄露你的安全加密对。API密钥对可以从OSS的管理中心获取到,如图1所示。

 

20140915115027

 

如图1所示

 

初阶:使用命令行工具

 

对于开发人员来说,使用命令行工具可以更容易地操作OSS。命令行工具随Python SDK包一起发布,从开放存储主页http://oss.aliyun.com可以下载到。

 

安装好Python SDK包后(安装指南参考主页的SDK使用向导),首先用osscmd来配置你的安全加密对(以下以Linux环境为例,Windows用户需要用python path_to_osscmd来指定osscmd的路径):

 

$ osscmd config –id=AccessID –key=AccessKey

 

配置完即可开始创建一个bucket,使用命令行工具键入如下命令创建一个叫做myimage的bucket,创建完调用osscmd的ls命令来列出已经有的bucket:

 

$ osscmd createbucket myimage

 

$ osscmd ls

 

由于bucket名字是全局唯一的,因此你创建的bucket可能和已存在的bucket冲突。建议使用公司的网址作为前缀来创建bucket,如 com-abc-img。默认情况下,osscmd创建的bucket权限是private。对于Web图片访问,可以设置bucket的权限为 public-read以将存储在OSS中的图片直接嵌入网页。可以使用osscmd的setacl命令来设置bucket权限为public- read:

 

$ osscmd setacl myimage –acl=public-read

 

接下来,上传一个图片到myimage中。为了使浏览器正确解析图片,设置它的类型为图片(image/jpg):

 

$ osscmd put –content-type=image/jpg /path/to/top.jpg oss://myimage/

 

这样就成功地将图片文件top.jpg存入到了myimage中。这个文件的URL地址是http://storage.aliyun.com /myimage/top.jpg。对这个URL:域名地址是OSS的服务地址htpp://storage.aliyun.com,myimage是 bucket的名字,接下来就是刚刚上传的图片名。可以将这个URL直接嵌入到HTML页面中的img元素中:

 

<img src=”http://storage.aliyun.com/myimage/top.jpg” alt=”top image”>

 

这里需要提示的是:在使用osscmd的put命令时加入-p参数,在上传完文件后,会打印出URL。

 

直接键入osscmd,不加参数即可输出全部支持的命令。

 

进阶:使用SDK通过程序来操作OSS

 

OSS提供了Python、PHP、Java、C、C#五种语言的SDK包,如果觉得直接调用OSS的REST API麻烦的话,可以使用官方提供的可靠SDK。

 

我们选择用时下流行的Python语言来操作OSS。上一节安装完Python SDK后,我们已经不需要更多的配置了。打开文本编辑器或者vim,你用EMACS?佩服你,是个牛人!

 

下面代码的作用是打印出自己的所有bucket列表:

 

接下来,用SDK向刚刚创建的myimages中写入网页的导航图片nav.jpg。代码如下:

 

 

如果没有报错的话,文件已经上传成功了。可以使用osscmd的ls命令来查看这个文件是否已经存在:

 

$ osscmd ls oss://myimages/

 

看到nav.jpg了吗?还可以用osscmd的meta命令来查看nav.jpg的属性:

 

$ osscmd meta oss://myimages/nav.jpg

 

输出中的第二列是nav.jpg的etag(即md5值)。回到SDK,接着再用这些代码继续传一些文件,然后用SDK来查看有哪些文件存在。

 

继续写下面的代码就可以列出myimages中的所有文件:

 

网站大量的图片,需要使用文件夹的方式来组织。在OSS里如何建立文件夹呢?非常简单,只需要在文件名之前加上文件夹名,OSS会自动为你创建出文件夹。使用osscmd来上传文件到myimages中的2012这个目录,并且用ls命令列出:

 

$ osscmd put /path/to/sidebar.jpg oss://myimages/2012/

 

$ osscmd ls oss://myimages/2012/

 

而使用SDK的代码如下:

 

用代码列出2012目录下的文件:

 

 

高阶:安全签名的URL和自定义header

 

对于有些设置为private的bucket,有时需要容许其中的某个文件能够被公开访问,但又不希望把bucket的权限设置为public-read而导致其他数据有泄露的危险。对URL进行签名能够有效地解决这个问题。使用osscmd对一个文件进行签名:

 

$ osscmd signurl oss://myimages/2012/sidebar.jpg –timeout=600

 

命令最后的timeout参数的含义是生成的链接在600秒内有效,超过600秒就不可访问。使用SDK来生成URL:

 


对于某些网站,如果要防止盗链(或防止搜索引擎爬虫导致的网站流量飙升),可以使用生成的URL嵌入页面,生成URL的过程不需要和OSS进行交换。

 

如果想在读取文件时,OSS支持返回一些自定义的响应头(response header),需要在上传这个文件时就设置好。目前,除了前面介绍的Content-Type以外,OSS还支持设置如下几种常用的HTTP响应 头:Expires、Cache-Control、Content-Disposition和Content-Encoding。这些Header的具体 含义,可以参考RFC 2616标准。使用API来设置这些响应头的方法如下:

 

经济、无需运维的云存储

 

以上介绍了OSS的基本功能,与传统的存储如NAS等解决方案相比,OSS更经济,并且为用户彻底解决了繁杂的系统日常运维、备份等工作。

 

传统存储系统随着业务规模的增长,必须不断地预先扩容,同时还要对存储系统中的数据不断备份,以面对可能突然发生的硬件故障。而使用OSS,用户上 传的数据自动会有多份拷贝冗余,数据安全性达到99.99999999%。OSS在维护用户数据高可靠性的同时,也保障了服务的高可用性,承诺最低 99.9%的可用性,所有繁杂的存储备份和硬件故障不再是用户的问题。

 

在网络方面,OSS的网络响应速度非常具有优势,保证了全国绝大多数地区的良好访问体验。

 

但当用户网站的访问量非常大,需要服务全国各地用户,特别是部分静态图片成为访问热点时,使用CDN服务,能够更快地将数据传递到终端用户,并且网络流量的开销也更为经济。接下来,让我们了解一下阿里云CDN的情况。

 

使用CDN加速内容加载的速度

 

阿里云CDN服务是一个遍布全国的分布式缓存系统,能够将网站文件(如图片或JavaScript代码文件)缓存到全国多个城市机房中的服务器上,当一个用户访问你的网站时,会就近到靠近TA的城市的服务器上获取数据,这样最终用户访问你的服务速度会非常快。

 

阿里云CDN服务在全国部署超过100个节点,能提供给用户优良的网络加速效果。当网站业务突然爆发增长时,无需手忙脚乱地扩容网络带宽,使用 CDN服务即可轻松应对。和OSS服务一样,使用CDN,需要先在aliyun.com网站上开通CDN服务。开通后,需要在网站上的管理中心创建你的 distribution(即分发频道),每个distribution由两个必须的部分组成:distribution ID和源站地址。

 

举例来说,需要对刚刚存储在OSS中的myimages这个bucket中的数据进行加速,那么源站地址即为 http://storage.aliyun.com,CDN服务会自动为用户创建一个distribution ID,服务创建完成后,即可使用http://distributionID.aliyuncdn.com/myimages /someimage.jpg来访问原来存储在myimage这个bucket中的someimage.jpg文件。如果不想使用阿里云CDN生成的域 名,那么可以将自己网站的二级域名,如cdn.abc.com,加入一个CNAME记录到distributionID.aliyuncdn.com。

 

创建distribution需要在阿里云网站的CDN管理页面操作。而当 distribution创建好之后,即可使用SDK来对distribution进行操作,代码非常类似OSS的使用方法,接下来的代码列出了用户的 distribution列表,并且将其中一个ID为myID的distribution中的一张图片从CDN缓存中删除。

 

由此可见,使用阿里云OSS和CDN,可以简单、经济地解决服务的存储和网络问题,毕竟,大多数网站或应用的存储和网络带宽多半是被图片或视频消耗掉的。

 

从整个业界来看,最近这样的面向个人用户的云存储如国外的DropBox和Box.net非常受欢迎。非常期待大家能在阿里云服务如OSS平台上开发出这么棒的应用!

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_779124.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《众妙之门——网站UI设计之道(修订版)》一导读

序 言 众妙之门——网站UI设计之道&#xff08;修订版&#xff09;人可以使简单的事情变得复杂&#xff0c;通过常规的方式写一本书对我们而言算不上什么挑战&#xff0c;从撰稿者的名单可以证明这一点。我们希望尽可能多的人参与进来&#xff1a;作者、设计师和插画师。实际上…

程序员一般喜欢浏览哪些网站呢?

原创文章&#xff0c;欢迎转载。转载请注明&#xff1a;转载自IT人故事会&#xff0c;谢谢&#xff01; 原文链接地址&#xff1a;程序员一般喜欢浏览哪些网站呢&#xff1f; CSDN CSDN (Chinese Software Developer Network) 创立于1999年&#xff0c;是中国的IT社区和服务平…

c语言程序设计网站有哪些,C语言编程软件有哪些?

C语言是一门通用计算机编程语言&#xff0c;应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的功能&#xff0c;但仍然保持着良好跨平台的特性&#xff…

如何建立网站服务器让手机访问权限,设置站点的 Web 制作访问权限 - Tableau

Tableau Server 管理员可在站点级别指定是否允许用户在 Web 环境中编辑发布的视图&#xff0c;以及配置其他 Web 制作功能。默认情况下&#xff0c;针对所有站点启用了 Web 制作功能。具有“Web 编辑”能力的用户可以直接在服务器上创建和编辑工作簿。如果希望用户能够查看发布…

『互联网架构』软件架构-分布式之大型网站的演变过程

项目都是从单一的应用&#xff0c;到分布式应用&#xff0c;到流式的基栈&#xff0c;这样的思想。 单体应用 app应用&#xff0c;db数据库&#xff0c;server服务都在同一台机器上 集群应用 随着业务量的增大&#xff0c;一台服务器&#xff0c;需要进行拆分到3台服务器。 ser…

美国人开发了一个有趣的网站,可以算出你被机器人抢饭碗的概率

近年来&#xff0c;随着人工智能成为继智能硬件的下一个风口之后&#xff0c;关于机器人取代人类的声音一直此起彼伏。如“到了2030年&#xff0c;机器人将会取代人类70%的工作”此类论调&#xff0c;皆可见诸报端。身为人类的我们&#xff0c;每次看到这些新闻&#xff0c;总不…

EntLib.com 电子商务系统 v2.5 – 前台购物网站/网店发布-- 源码包

请尊重 EntLib.com 的辛苦奉献及版权&#xff01;1、未获商业授权之前&#xff0c;不得将本软件用于商业用途&#xff08;包括但不限于企业网站、经营性网站、以营利为目的或实现盈利的网站&#xff09;。购买商业授权请登陆http://www.entlib.com/ 了解最新说明。2、未经官方许…

使用WireShark嗅探网站登陆密码

本文仅供技术讨论&#xff0c;不能用于非法用途。 Step 1&#xff1a;安装wireshark,并开启网卡混杂模式&#xff0c;抓包。不懂的同学问度娘&#xff0c;就不在本文讨论了。 Step 2&#xff1a;背景 东哥报销系统的账户和密码是自动登陆&#xff0c;时间长了密码不记得了&…

Linux搭建web网站综合实验

综合实验&#xff1a; 请给openlab搭建web网站 网站需求&#xff1a;1、基于域名www.openlab.com可以访问网站内容为welcome to openlab!! —— /openlab 2、给该公司创建三个网站目录分别显示学生信息&#xff0c;教学资料&#xff0c;缴费网站&#xff0c;基于 www.openlab.c…

html5手机排名,手机网站排名怎么做?移动端手机站SEO排名的13个要点

手机网站最重要的就是不同机型的完美适配&#xff0c;现在大大小小尺寸的手机那么多&#xff0c;如果你的网站可以做到不管任何尺寸的手机都很好适配的话&#xff0c;那想做手机网站的排名工作已经赢在第一步了&#xff01;1:百度官方意见&#xff1a;使用合理的div和css架构&a…

1万并发服务器配置_怎么根据网站访问量并发量来推算配置服务器?

导语新手站长躲不过的一个问题就是给自己的站配置什么样的服务器?我们怎么样才能花最少的成本租用高最合适的服务器?今天&#xff0c;我们的话题主要就是浅谈这个站长们绕不开的问题&#xff0c;怎么根据网站访问量、并发量来推算租用何种配置服务器?比如&#xff0c;你的网…

linux+wdcp+目录,Linux+WDCP建站流程

以下内容仅适用于我司linux系统(包括CentOS/Ubuntu)云主机1.您可以通过SSH客户端(如putty)登录云主机&#xff0c;初始账号密码详见产品管理平台&#xff1b;请注意独立IP云主机SSH端口51022&#xff0c;非22。2.新购买或自助重装系统后&#xff0c;mysql默认密码保存在/root/i…

我花费洪荒之力从各个搜索网站收集了几百本常用的电子书

为了方便广大的小伙伴也能方便找到对应领域的电子书&#xff0c;我花费洪荒之力从各个搜索网站收集了几百本常用的电子书。希望这些书籍对你有帮助&#xff01; 欢迎关注公众号【程序猿编码】&#xff0c;添加本人微信号(17865354792),回复领取学习资料,网盘资料有如下&#…

宜立方 电商网站 -- 问题集合

1 |基于大数据技术的电子商务平台&#xff08;老师指导下完成&#xff09;2 开发时间&#xff1a;2017/12 – 至今3 软件架构&#xff1a;Spring SpringMVC Mybatis EasyUI Solr Redis Maven4 项目描述&#xff1a;5 该项目采用SSM框架&#xff0c;采用Redis缓存&am…

允许网站使用相机和麦克风_你还在随意允许手机应用权限?那你的手机危险了...

嗨&#xff0c;大家好&#xff0c;我是猴叔~我们都知道在使用我们的手机的时候&#xff0c;大家都会下载一些手机软件APP。但是当我们下载完软件的时候就会注意到&#xff0c;这些软件都会需要进行【应用权限】的设置&#xff0c;大家是不是都会选择全部允许授权呢&#xff1f;…

此请求已被阻止,因为当用在 GET 请求中时,会将敏感信息透漏给第三方网站。若要允许 GET 请求,请将 JsonRequestBehavior 设置为 AllowGet。

如果遇到这个问题是由于返回Json时没有在后面加JsonRequestBehavior.AllowGet 下面是正确的写法&#xff1a; 如果不写则默认为JsonRequestBehavior.DenyGet AllowGet&#xff1a; 允许来自客户端的 HTTP GET 请求。 DenyGet&#xff1a; 不允许来自客户端的 HTTP GET 请求…

高并发的php网站需要注意什么,网站关于高并发时候的应该采取一些优化方案

前段时间第一次接触大流量并发,而那时候我还没有相关经验,所以代码写的很渣,导致服务器死了又死现在也算有点经验了,本文章主要说明下我现在能理解的一些优化方案一:架构方面1:前台采用nginx服务器的静态页面,不用php的模板引擎以及php输出(静态页面不用经过php,可以减少一些消…

网站html规则,HTML5:新一代的网页规范终于完成

HTML5这个下一代网页和智能手机应用的基石已经完成据美国有线电视新闻网消息&#xff0c;经过长时间的研发升级&#xff0c;新一代的网页标准HTML5终于开发完成&#xff0c;万维网联盟(Worldwide Web Consortium&#xff0c;简称W3C)在周一宣布。HTML 5在正式成为官方标准以前还…

win7上使用phpstudy轻松部署wordpress本地网站的教程

前言&#xff0c;在这之前我已经手动部署过LNMP架构的网站&#xff08;LAMP是 linux Nginx MySQL PHP的简写&#xff09;&#xff0c;还有使用宝塔一键搭建LNMP/LAMP架构的网站。硬件工具&#xff1a;PC机 软件工具&#xff1a;Win7&#xff0c;phpstudy&#xff0c;wordpress …

Arachni安装及网站扫描

0X00 Arachni介绍 Arachni是一个多功能、模块化、高性能的Ruby框架&#xff0c;旨在帮助渗透测试人员和管理员评估Web应用程序的安全性。同时Arachni开源免费&#xff0c;可安装在Windows、Linux以及Mac系统上&#xff0c;并且可导出评估报告。 0X01下载Arachni 下载合适的A…