概述
阅读对象
本博文主要写给创业团队、技术团队人数 < 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 地址
点击了解更多详细内容