1、基本功能

        使用阿里云管理控制台来完成 OSS 基本操作的流程如下:

oss配置参数 tempPath oss使用教程_OSS存储

 (1)开通OSS服务器

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

oss配置参数 tempPath oss使用教程_阿里云_02

操作步骤 

  1. 登录阿里云官网。
  2. 将鼠标移至产品,单击对象存储 OSS,打开 OSS 产品详情页面。
  3. 在 OSS 产品详情页,单击立即开通。

oss配置参数 tempPath oss使用教程_字段_03

  • 开通服务后,在 OSS 产品详情页单击管理控制台直接进入 OSS 管理控制台界面。
  • 您也可以单击位于官网首页右上方菜单栏的控制台,进入阿里云管理控制台首页,然后单击左侧的对象存储 OSS 菜单进入 OSS 管理控制台界面。 

oss配置参数 tempPath oss使用教程_OSS存储_04

oss配置参数 tempPath oss使用教程_阿里云_05

(2) 创建存储空间

  • 登录OSS管理控制台。
  • 单击Bucket列表,之后单击创建Bucket。您也可以单击概览,之后单击右侧的创建Bucket。
  • 在创建Bucket页面配置Bucket参数。

oss配置参数 tempPath oss使用教程_字段_06

(3) 上传文件

  1. 登录OSS管理控制台。
  2. 单击Bucket列表,之后单击目标Bucket名称。
  3. 单击文件管理 > 上传文件。
  4. 在上传文件页面,设置上传文件的参数。
  5. 在上传任务页面等待任务完成,之后关闭对话框。

oss配置参数 tempPath oss使用教程_OSS存储_07

(4)下载文件 

  1. 登录OSS管理控制台。
  2. 进入目标Bucket。
  • 单击Bucket列表,之后单击目标Bucket名称。
  1. 单击文件管理页签,您可以进行以下操作:

oss配置参数 tempPath oss使用教程_OSS存储_08

(5) 删除文件

  1. 登录OSS管理控制台。
  2. 进入目标Bucket。
  • 单击Bucket列表,之后单击目标Bucket名称。
  1. 选择一个或多个文件,选择批量操作 > 删除。
  • 您也可以选择目标文件右侧的更多 > 删除来删除单个文件。
  1. 在删除文件对话框中,单击确定。

oss配置参数 tempPath oss使用教程_服务器_09

(5) 删除存储空间

  • 进入OSS管理控制台界面。
  • 进入目标Bucket,找到删除Bucket按钮。
  • 单击基础设置页签,找到Bucket管理区域。
  • 单击删除Bucket。
  • 在弹出的对话框中,单击确定。

oss配置参数 tempPath oss使用教程_oss配置参数 tempPath_10

 

2、Object外链地址的构成规则

        如果一个bucket设置成公开读权限,意味着允许其他用户来访问属于你的object。你的object的外链地址构成规则如下:

http:// <你的bucket名字>.<数据库中心服务域名>/<你的object名字>

构成规则的示意图如下:

oss配置参数 tempPath oss使用教程_oss配置参数 tempPath_11

假设 oss-example 这个 bucket 在青岛数据中心,这个 object 的外链 URL 为: 

http://oss-example.oss-cn-qingdao.aliyuncs.com/aliyun-logo.png

用户可以直接该URL链接放入HTML中使用:

<img src="http://oss-example.oss-cn-qingdao.aliyuncs.com/aliyun-logo.png"/>

        OSS 的短域名(oss.aliyuncs.com)作为 OSS 杭州数据中心的另一个域名仍然可以使用,但只能处理bucket 属于杭州数据中心的请求。 为了统一起见,本 文接下来章节的例子中, 都将以 oss-cnhangzhou域名为例。 请用户根据自己 bucket 所属的数据中心自行替换请求所访问的 Host。

注意:在使用 OSS 时,请一直使用 OSS 服务域名,而不要使用固定的 IP 地址。

3、OSS防盗链

        OSS 是按使用收费的服务, 为了防止用户在 OSS 上的数据被其他人盗链, OSS 支持基于 HTTP header 中表头字段 referer 的防盗链方法。通过 OSS 的控制台--权限管理--防盗链,可以对一个 bucket设置 referer 字段的白名单和是否允许 referer 字段为空的请求访问。例如, 对于一个名为 ossexample的 bucket,设置其 referer 白名单为 http://www.aliyun.com。则所有 referer 为 http://www.aliyun.com 的请求才能访问 oss-example 这个 bucket 中的 Object。

细节分析:

  1. 用户只有通过 URL 签名或者匿名访问 Object 时,才会做防盗链验证。请求 的 Header 中有“Authorization”字段的,不会做防盗链验证。
  2. 一个 bucket 可以支持多个 referer 参数,这些参数之间由“,”号分隔。oss控制台配置时 使用换行
  3. Referer 参数支持通配符“*”和“?”。
  4. 用户可以设置是否允许 referer 字段为空的请求访问。
  5. 白名单为空时,不会检查 referer 字段是否为空(不然所有的请求都会被拒绝)。
  6. 白名单不为空,且设置了不允许 referer 字段为空的规则;则只有 referer 属于 白名单的请求被允许,其他请求(包括 referer 为空的请求)会被拒绝。
  7. 如果白名单不为空,但设置了允许 referer 字段为空的规则;则 referer 为空的 请求和符合白名单的请求会被允许;其他请求都会被拒绝。
  8. Bucket 的三种权限(private, public-read, public-read-write)都会检查 referer 字段。

4、自定义域名绑定(CNAME)

        OSS 支持用户将自定义的域名绑定在属于自己的 bucket 上面,这个操作必 须通过 OSS 控制台(http://oss.aliyun.com) -“Bucket 属性 传输管理 ” -“绑定域名”页面 配置来实现。按照中国《互联网管理条例》的要求,所有需要开通这项功能的用 户,必须提供阿里云备案号,域名持有者身份证等有效资料,经由阿里云审批通 过后才可以使用。在开通 CNAME 功能后, OSS 将自动处理对该域名的访问请求。

CNAME 应用场景例子:

  • 用户 A 拥有一个域名为 abc.com 的网站;这个网站的所有图片存储在 img.abc.com 这个子域名下;
  • 为了应对日益增长的图片流量压力, 用户 A 在 OSS 上创建了一个名为 abc-img 的 bucket, 并将所有图片存在 OSS 上;
  • 通 过 OSS 控 制 台 , 提 交 将 img.abc.com CNAME 成 abc-img.oss-cnhangzhou.aliyuncs.com 的申请,并提供相应的材料
  • 通过阿里云审核后,在自己的域名服务器上,添加一条 CNAME 规则(https://dns.console.aliyun.com/?spm=a2c4g.11186623.2.12.70c759cbsvcLcR#/dns/domainList), 将 img.abc.com 映射成 abc-img.oss-cn-hangzhou.aliyuncs.com,这样所有对 img.abc.com 的访问都将变成访问abc-img 这个 bucket。例如:一个对 http://img.abc.com/logo.png 的 访 问 , 实 际 上 访 问 的是 http://abc-img.oss-cn-hangzhou.aliyuncs.com/logo.png

5、访问日志记录(Server_Access_Logging)

        OSS为用户提供自动保存访问日志记录功能。Bucket的拥有者可以通过OSS控制台(http://oss.aliyun.com)日志管理,为其所拥有的bucket开启访问日志记录功能。当一个bucket(源Bucket,SourceBucket)开启访问日志记录功能后,OSS自动将访问这个bucket的请求日志,以小时为单位,按照固定的命名规则,生成一个Object写入用户指定的bucket(目标Bucket,Target Bucket)。

存储访问日志记录的object命名规则:

<TargetPrefix><SourceBucket>-YYYY-mm-DD-HH-MM-SS-UniqueString

        命名规则中,TargetPrefix由用户指定;YYYY, mm, DD, HH, MM和SS分别是该Object被创建时的阿拉伯数字的年,月,日,小时,分钟和秒(注意位数);UniqueString为OSS系统生成的字符串。一个实际的用于存储OSS访问日志的Object名称例子如下:

MyLog-oss-example-2012-09-10-04-00-00-0000

        上例中,“MyLog-”是用户指定的Object前缀;“oss-example”是源bucket的名称;“2012-09-10-04-00-00”是该Object被创建时的北京时间;“0000” 是OSS系统生成的字符串。

LOG文件格式(从左至右,以空格分隔):

名称

例子

含义

Remote IP

119.140.142.11

请求发起的IP地址(Proxy代理或用户防火墙可能会屏蔽该字段)

Reserved

-

保留字段

Time

[02/May/2012:00:00:04+0800]

OSS收到请求的时间

Request-URI

“GET /aliyun-logo.png HTTP/1.1“

用户请求的URI(包括query-string)

HTTP Status

200

OSS返回的HTTP状态码

SentBytes

5576

用户从OSS下载的流量

RequestTime(ms)

71

完成本次请求的时间(毫秒)

Referrer

对象存储OSS_云存储服务_企业数据管理_存储-阿里云

请求的HTTP Referrer

User-Agent

curl/7.15.5

HTTP的User-Agent头

HostName

oss-example.oss.aliyuncs.com

请求访问域名

Request ID

505B01695037C2AF032593A4

用于唯一标示该请求的UUID

LoggingFlag

true

保留字段

Requester Aliyun ID

1657136103983691

请求者的阿里云ID;匿名访问为“-”

Operation

GetObject

请求类型

Bucket

oss-example

请求访问的Bucket名字

Key

/aliyun-logo.png

用户请求的Key

ObjectSize

5576

Object大小

Server Cost Time (ms)

17

OSS服务器处理本次请求所花的时间 (毫秒)

Error Code

NoSuchBucket

OSS返回的错误码

UserID

1657136103983691

Bucket拥有者ID

Delta DataSize

280

Bucket大小的变化量;若没有变化为“-”

细节分析:

  • 源Bucket和目标Bucket必须属于同一个用户。
  • “TargetPrefix”表示存储访问日志记录的object名字前缀,可以为空。
  • 源bucket和目标bucket可以是同一个Bucket,也可以是不同的Bucket;用户也可以将多个的源bucket的LOG都保存在同一个目标bucket内(建议指定不同的TargetPrefix)。
  • OSS以小时为单位生成bucket访问的Log文件,但并不表示这个小时的所有请求都记录在这个小时的LOG文件内,也有可能出现在上一个或者下一个LOG文件中。
  • OSS生成的Log文件命名规则中的“UniqueString”仅仅是OSS为其生成的UUID,用于唯一标识该文件。
  • OSS生成一个bucket访问的Log文件,算作一次PUT操作,并记录其占用的空间,但不会记录产生的流量。LOG生成后,用户可以按照普通的Object来操作这些LOG文件。
  • OSS会忽略掉所有以“x-”开头的query-string参数,但这个query-string会被记录在访问LOG中。如果你想从海量的访问日志中,标示一个特殊的请求,可以在URL中添加一个“x-”开头的query-string参数。

如下:

http://oss-example.oss.aliyuncs.com/aliyun-logo.pnghttp://oss-example.oss.aliyuncs.com/aliyun-logo.png?x-user=admin

   OSS处理上面两个请求,结果是一样的。但是在访问LOG中,你可以通过搜索“x-user=admin”,很方便地定位出经过标记的这个请求。

  • OSS的LOG中的任何一个字段,都可能出现“-”,用于表示未知数据或对于当前请求该字段无效。
  • 根据需求,OSS的LOG格式将来会在尾部添加一些字段,请开发者开发Log处理工具时考虑兼容性的问题。