概述
阅读对象
本博文主要写给创业团队、技术团队人数 < 5 人、没有专业运维等小微企业作为参考,需要掌握基础的服务器管理、软件开发等经验。
博文主要内容
本博文主要为大家介绍静态文件的存储以及使用 CDN 加速访问的热点图片。很多企业都会面临网站大图加载缓存、文件下载并发低(通常同时几个人下载服务器上的大文件就会跑满服务的带宽)等问题,本文将逐一为大家讲解如何解决此类问题。
OSS 图片存储(对象存储)
官方介绍
海量、安全、低成本、高可靠的云存储服务,提供99.999999999%的数据可靠性。使用RESTful API 可以在互联网任何位置存储和访问,容量和处理能力弹性扩展,多种存储类型供选择全面优化存储成本。
CDN 内容分发
官方介绍
将源站内容分发至最接近用户的节点,使用户可就近取得所需内容,提高用户访问的响应速度和成功率。解决因分布、带宽、服务器性能带来的访问延迟问题,适用于站点加速、点播、直播等场景。
两款产品主要解决问题
- 无限量存储空间,一次接入无需关注存储容量限制,按照实际使用容量收费
- 存储价格低,相比云服务器 0.3元/GB/月,OSS 存储只需要0.12元/GB/月,归档存储更是低至 0.033/GB/月
- 图片上传不限宽带,OSS 服务的宽带几乎不限制,使用常规的 ECS 服务器若购买 100mbps 的宽带,费用相当高,OSS 则可以无需支付高昂的宽带费用
- 图片下载不限宽带,图片(或文件)存储在 OSS 上,下载不受服务器的限制,一般情况下客户端带宽有多大,下载速度就有多快
- 无缝对接 CDN 内容分发,可搭配 CDN 产品将热点图片缓存到离用户最近的节点,进一步提高加载速度
- CDN 流量包进一步降低流量费,相比于 ECS 服务器 0.72元/GB 流量费,CDN 低至 0.24元/GB,并且不占用应用服务器带宽
- 天然集成的图片在线处理,访问 OSS 存储的图片时可以通过参数在线处理图片大小,例如指定高度的图片,相关文档:图片缩放
如何选择使用
推荐 OSS 对象存储和 CDN 内容分发两款产品搭配使用。
案例一、使用 OSS 存储应用图片,实现动静分离
在一般项目中,大多数情况下是直接将静态文件存放在项目目录中,项目运行时上传的图片也会放入项目运行目录中例如:upload,这样存在诸多问题,不利于运维人员的管理工作。
自建 FTP 服务器来存储图片一是成本高,二是配置不当会导致 FTP 服务器不安全或者不稳定,这时我们可以通过 OSS 的 SDK 集成到项目中,将项目运行过程中用户、管理员等上传的图片统统传入 OSS 中进行存储,这样服务器上只需要放应用程序,无需再给图片分配空间,也不用担心图片过多导致服务器空间不足。
1、对接之前需要在 OSS 控制台创建 bucket,尽量选择和应用服务器一个地域的 bucket,下图 EndPoint 地域节点是 SDK 上传图片需要用到的域名,Bucket 域名为 OSS 分配的临时域名(可以自行 cname 解析到临时域名*问,也可以直接使用临时域名访问图片)
2、创建好 bucket 之后需要在 RAM 控制台 中创建一个账号用于读写 OSS 中的文件,SDK 初始化参数是需要用到,这里建议不同环境分配不同的账号进行管理
3、在官网文档选择项目使用的语言对应的 SDK 版本,例如这里选择 Java 版本,按照文档上的安装说明以及代码初始化 OSS SDK
4、之后项目中需要用到文件上传的地方统一使用 OSS SDK 上传即可
5、上传成功后我们可以通过 OSS 控制台查看文件以及访问文件的 URL 地址
点击了解更多详细内容