您可以开启存储空间的访问日志记录功能。当一个Bucket(源Bucket,Source Bucket)开启访问日志记录功能后,OSS自动将访问这个Bucket的请求日志,以小时为单位,按照固定的命名规则,生成一个Object写入您指定的Bucket(目标Bucket,Target Bucket)。

日志记录Object命名规则

<TargetPrefix><SourceBucket>YYYY-mm-DD-HH-MM-SS-UniqueString
命名规则中,
  • TargetPrefix由用户指定,表示存储访问日志记录的Object名字前缀,可以为空。
  • YYYY-mm-DD-HH-MM-SS表示该Object被创建时的阿拉伯数字的年、月、日、小时、分钟和秒(注意位数)。
  • UniqueString为OSS系统生成的字符串(UUID),用于唯一标识该Log文件。
存储OSS访问日志的Object的名称示例如下:
MyLog-oss-example2017-09-10-04-00-00-0000
上例中,
  • MyLog-是用户指定的Object前缀。
  • oss-example是源Bucket的名称。
  • 2017-09-10-04-00-00是该Object的创建时间。
  • 0000 是OSS系统生成的字符串。

Log文件格式

Log文件的格式组成:以下名称从左至右,以空格分隔。

名 称 例 子 含 义
Remote IP 119.140.142.11 请求发起的IP地址(Proxy代理或用户防火墙可能会屏蔽该字段)
Reserved - 保留字段
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 完成本次请求的时间(毫秒)
Referer http://www.aliyun.com/product/oss 请求的HTTP Referer
User-Agent curl/7.15.5 HTTP的User-Agent头
HostName oss-example.oss-cn-hangzhou.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返回的错误码
Request Length 302 用户请求的长度(Byte)
UserID 1657136103983691 Bucket拥有者ID
Delta DataSize 280 Bucket大小的变化量;若没有变化为-
Sync Request - 是否是CDN回源请求;若不是为-
Reserved - 保留字段

细节分析

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

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

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

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

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

功能使用参考