一、oss是什么

阿里云对象存储服务(Object Storage Service,简称OSS)为您提供基于网络的数据存取服务。使用OSS,您可以通过网络随时存储和调用包括文本、图片、音频和视频等在内的各种非结构化数据文件

阿里云OSS将数据文件以对象(object)的形式上传到存储空间(bucket)中。您可以进行以下操作:

(1)创建一个或者多个存储空间,向每个存储空间中添加一个或多个文件。

(2)通过获取已上传文件的地址进行文件的分享和下载。

(3)通过修改存储空间或文件的属性或元信息来设置相应的访问权限。

(4)在阿里云管理控制台执行基本和高级OSS任务。

(5)使用阿里云开发工具包或直接在应用程序中进行RESTful API调用执行基本和高级OSS任务。

二、对象存储oss 与 自建服务器存储的对比

对比项

对象存储OSS

自建服务器存储

可靠性

  • 服务设计可用性不低于99.99%。
  • 规模自动扩展,不影响对外服务。
  • 数据设计持久性不低于99.999999999%。
  • 数据自动多重冗余备份。
  • 受限于硬件可靠性,易出问题,一旦出现磁盘坏道,容易出现不可逆转的数据丢失。
  • 人工数据恢复困难、耗时、耗力。

安全

  • 提供企业级多层次安全防护。
  • 多用户资源隔离机制,支持异地容灾机制。
  • 提供多种鉴权和授权机制及白名单、防盗链、主子账号功能。
  • 需要另外购买清洗和黑洞设备。
  • 需要单独实现安全机制。

成本

  • 多线BGP骨干网络,无带宽限制,上行流量免费。
  • 无需运维人员与托管费用,0成本运维。
  • 存储受硬盘容量限制,需人工扩容。
  • 单线或双线接入速度慢,有带宽限制,峰值时期需人工扩容。
  • 需专人运维,成本高。

数据处理能力

提供图片处理、音视频转码、内容加速分发、鉴黄服务、归档服务等多种数据增值服务,并不断丰富中。

需要额外采购,单独部署。

 

三、使用场景

1、图片和音视频等应用的海量存储

2、网页或者移动应用的静态和动态资源分离

3、云端数据处理

 

四、购买oss服务


OSS对象存储用法 java 对象存储oss全称_OSS对象存储用法 java

OSS对象存储用法 java 对象存储oss全称_php_02

需要注意的是,建议您根据需求同时购买存储包和下行流量包。如果您同时开通了cdn加速,建议再购买回源流量包。如果不购买流量包,产生的费用就有些大了(就像用手机时,我们也需要购买流量包一样)。

 

五、oss的使用


1、购买oss之后,进入控制台,点进oss

OSS对象存储用法 java 对象存储oss全称_对象存储_03

 

2、根据自己需求填写名称,以及选择区域

OSS对象存储用法 java 对象存储oss全称_对象存储_04

3、点击确定,进入下一界面,如下

OSS对象存储用法 java 对象存储oss全称_OSS对象存储用法 java_05

 

到此,oss已经创建好了。现在,就可以使用了。

 

4、开始正式在网站使用oss对象存储服务

(1)首先,在oss控制台新建一个文件夹,用于存储网站的图片,然后向文件夹里上传几张图片。

OSS对象存储用法 java 对象存储oss全称_composer_06

 

5、这里,我新建了一个image文件夹,并向其中上传了6张图片。如图:

OSS对象存储用法 java 对象存储oss全称_对象存储_07

 

6、在网站中访问

d.php

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>Document</title>
</head>
<body>
<img src="http://hk-server.oss-cn-hongkong.aliyuncs.com/image/10005ad45c08b7a81.jpeg" alt="">
</body>
</html>

url访问:

OSS对象存储用法 java 对象存储oss全称_OSS对象存储用法 java_08

 

到此,oss对象存储服务中存储的文件已经可以在网站中正常访问了。

注:要设置图片的访问权限(文件ACL),我这里为了演示效果,设置的是公共读。

 

 

7、在框架中应用oss服务

当然,前面的介绍只是简单的访问图片的url地址,然后进行访问,那么如何在框架中对整个oss进行一系列的增伤改查操作呢,这里以最基础的tp3为例。

在项目根目录(application目录的上一级)进行如下操作:

(1)配置国内composer镜像

composer config -g repo.packagist composer https://packagist.phpcomposer.com

(2)composer 安装 oss PHP sdk

composer require aliyuncs/oss-sdk-php

(3)下载之后目录结构是这样(其他框架大同小异)

OSS对象存储用法 java 对象存储oss全称_composer_09

(4)填写配置项

修改文件 /Application/Common/Conf/config.php

'ALIOSS_CONFIG'         => array(
        'KEY_ID'        => '',    // 阿里云oss key_id
        'KEY_SECRET'    => '',    // 阿里云oss key_secret
        'END_POINT'     => '',    // 阿里云oss endpoint
    ),

(5)创建实例化函数

文件 /Application/Common/Common/function.php,如果不存在则新建。

 

(6)官方关于oss图片上传的代码示例


 

#代码待补

 

总结:oss对象存储的好处有很多,官方文档都有介绍,这里不多赘述。

不仅降低了本地服务器io的消耗,也提高了获取资源的速度。理论上,相对于一个公司网站而言,成本也并不是很大,使用起来也是极其方便。最主要的安全。

个人建议不论是做个人站,还是公司网站,如果静态资源较多,完全可以将静态资源都放到oss对象存储中,也是进一步优化了网站访问速度。

当然,oss其实也是可以搭配cdn来使用的。