OSS

阿里云对象存储服务OSS的安装与使用

Posted by Steven on 2017-03-24

阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。它具有与平台无关的RESTful API 接口,能够提99.999999999%(11个9)的数据可靠性和99.99%的服务可用性。您可以在任何应用、 任何时间、任何地点存储和访问任意类型的数据。

您可以使用阿里云提供的API、SDK接口或者OSS迁移工具轻松地将海量数据移入或移出阿里云OSS。数 据存储到阿里云OSS以后,您可以选择标准类型(Standard)的阿里云OSS服务作为移动应用、大型网站 、图片分享或热点音视频的主要存储方式,也可以选择成本更低、存储期限更长的低频访问类型(Infreq uent Access)和归档类型(Archive)的阿里云OSS服务作为不经常访问数据的备份和归档。

一、相关概念 存储类型(Storage Class)

OSS提供标准、低频访问、归档三种存储类型,全面覆盖从热到冷的各种数据存储场景。其中标 准存储类型提供高可靠、高可用、高性能的对象存储服务,能够支持频繁的数据访问;低频访问 存储类型适合长期保存不经常访问的数据(平均每月访问频率1到2次),存储单价低于标准类型 ;归档存储类型适合需要长期保存(建议半年以上)的归档数据,在三种存储类型中单价最低。 详情请参见存储类型介绍。

存储空间(Bucket)

存储空间是您用于存储对象(Object)的容器,所有的对象都必须隶属于某个存储空间。您可以 设置和修改存储空间属性用来控制地域、访问权限、生命周期等,这些属性设置直接作用于该存 储空间内所有对象,因此您可以通过灵活创建不同的存储空间来完成不同的管理功能。

对象/文件(Object)

对象是 OSS 存储数据的基本单元,也被称为OSS的文件。对象由元信息(Object Meta),用户数 据(Data)和文件名(Key)组成。对象由存储空间内部唯一的Key来标识。对象元信息是一个键 值对,表示了对象的一些属性,比如最后修改时间、大小等信息,同时您也可以在元信息中存储 一些自定义的信息。

地域(Region)

地域表示 OSS已开通的Region。

访问域名(Endpoint)

Endpoint 表示OSS对外服务的访问域名。OSS以HTTP RESTful API的形式对外提供服务,当访问 不同地域的时候,需要不同的域名。通过内网和外网访问同一个地域所需要的域名也是不同的。 具体的内容请参见各个Region对应的Endpoint。

访问密钥(AccessKey)

AccessKey,简称 AK,指的是访问身份验证中用到的AccessKeyId 和AccessKeySecret。OSS通过使用AccessKeyId 和AccessKeySecret对称加密的方法来验证某个请 求的发送者身份。AccessKeyId用于标识用户,AccessKeySecret是用户用于加密签名字符串和OS S用来验证签名字符串的密钥,其中AccessKeySecret 必须保密。

二、安装及使用

在使用阿里云OSS服务之前,请确保您已经注册了阿里云账号并完成实名认证。如果您还没有创建阿里云 账号,系统会在您开通OSS时提示您注册账号,注册之后

  1. 登录阿里云官网
  2. 将鼠标移至产品,单击对象存储OSS,打开OSS产品详情页面。
  3. OSS产品详情页,单击立即开通。
  4. 开通服务后,在OSS产品详情页面单击管理控制台直接进入OSS管理控制台界面。

您也可以单击位于官网首页右上方菜单栏的控制台 ,进入阿里云管理控制台首页,然后单击左侧的对象存储OSS菜单进入OSS管理控制台界面。

对于没有编程经验的,可以直接登录阿里云的OSS管理控制台 ,按照提示创建存储空间后上传数据使用即可

这里需要说一下,由于我们需要通过把一些数据的维护对接到我们的系统,所以这就要用到api,当然也 可以参考官方提供的Api参考 ,另外官方也提供了多种主流语言的SDK,下载后按照自己的需求,封装后即可使用,那JAVA为例:

安装SDK:在Maven项目中加入依赖项(推荐方式)

在 Maven 工程中使用 OSS Java SDK,只需在 pom.xml 中加入相应依赖即可。以 2.8.3 版本为例,在 内加入如下内容:

1
2
3
4
5
<dependency> 
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>2.8.3</version>
</dependency>

当然也可以直接下载jar包,导入使用

创建存储空间

存储空间是OSS全局命名空间,相当于数据的容器,可以存储若干文件。

以下代码用于新建一个存储空间

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// Endpoint以杭州为例,其它Region请按实际情况填写。
String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
// 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号 进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
String accessKeyId = "<yourAccessKeyId>";
String accessKeySecret = "<yourAccessKeySecret>";
String bucketName = "<yourBucketName>";

// 创建OSSClient实例。
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);

// 创建存储空间。 ossClient.createBucket(bucketName);

// 关闭OSSClient。 ossClient.shutdown();

上传文件(数据源的格式可以有字符串、Byte、文件等等给)

// Endpoint以杭州为例,其它Region请按实际情况填写。
String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
// 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号 进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
String accessKeyId = "<yourAccessKeyId>";
String accessKeySecret = "<yourAccessKeySecret>";

// 创建OSSClient实例。
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);

// 上传字符串。
String content = "Hello OSS";
ossClient.putObject("<yourBucketName>", "<yourObjectName>", new ByteArrayInputStream(c ontent.getBytes()));

// 关闭OSSClient。 ossClient.shutdown();

有以上几步,实际上已经将数据上传到OSS上了