此操作用来添加/修改/删除logging的操作。如果Bucket已经存在了logging,此操作会替换原有logging。只有根用户和拥有PUT Bucket Logging权限的子用户才能执行此操作,否则会返回403 AccessDenied错误。
请求语法
PUT /?logging HTTP/1.1
Host: BucketName.oos-cn.ctyunapi.cn
Date: date
Authorization: SignatureValue
Request elements vary depending on what you're setting.
请求参数
名称 | 描述 | 是否必须 |
---|---|---|
BucketName | 存储桶名称。 | 是 |
BucketLoggingStatus | 请求的容器。 类型:容器。 子节点:LoggingEnabled。 |
是 |
LoggingEnabled | 日志信息的容器,当启动日志时,需要包含这个元素。 类型:容器。 父节点:BucketLoggingStatus。 子节点:TargetBucket、TargetPrefix。 |
否 |
TargetBucket | 指定要保存log的Bucket,OOS会向此Bucket存储日志。可以设置任意一个你拥有的bucket作为TargetBucket,包括启动日志的bucket本身。你也可以设置将多个Bucket的日志存放到一个TargetBucket中,在这种情况下,你需要为每个源bucket设置不同的TargetPrefix,以便不同Bucket的log可以被区分出来。 类型:字符串。 父节点:LoggingEnabled。 |
否 |
TargetPrefix | 生成的log文件将以此为前缀命名。 类型:字符串。 父节点:LoggingEnabled。 |
否 |
请求示例1
启动日志
PUT /?logging HTTP/1.1
Host: docs.oos-cn.ctyunapi.cn
Content-Type: application/xml; charset=utf-8
Date: Mon, 03 Sep 2012 12:00:00 GMT
Authorization: SignatureValue
<?xml version="1.0" encoding="UTF-8"?>
<BucketLoggingStatus xmlns="http://doc.s3.amazonaws.com/2006-03-01">
<LoggingEnabled>
<TargetBucket>example-bucket</TargetBucket>
<TargetPrefix>mybucket-access_log-/</TargetPrefix>
</LoggingEnabled>
</BucketLoggingStatus>
响应示例1
HTTP/1.1 200 OK
x-amz-request-id: 0275747fbe8742a179ecdfeee3f0f2f8b7b9c3adafb1b3b5b7
Date: Mon, 03 Sep 2012 12:00:00 GMT
Server: CTYUN
请求示例2
以下是取消日志的示例:
PUT /?logging HTTP/1.1
Host: docs.oos-cn.ctyunapi.cn
Date: Mon, 03 Sep 2012 12:00:00 GMT
Authorization: SignatureValue
<?xml version="1.0" encoding="UTF-8"?>
<BucketLoggingStatus xmlns="http://s3.amazonaws.com/doc/2006-03-01/"></BucketLoggingStatus>
响应示例2
HTTP/1.1 200 OK
x-amz-request-id: 63b0c5fe79b7418d9407fa09fe0b0d13d2d4d8c8caccced0d2
Date: Mon, 03 Sep 2012 12:00:00 GMT
Server: CTYUN
日志名称
TargetPrefix<RegionName>/UTCYYYY-MM-DD-hh-mm-ss-唯一字符串_id
其中YYYY,MM,DD,hh,mm,ss分别代表日志发送时的年,月,日,小时,分钟,秒。TargetPrefix是用户在启动Bucket日志时配置的,如果未配置,则该项不存在。唯一字符串是服务端生成的,某些场景下不会生成。id表示日志服务器序号。
系统不会删除旧的日志文件。用户可以自己删除以前的日志文件,可以在List Objects时指定prefix参数,挑选出旧的日志文件,然后删除。
当客户端的请求到达后,日志记录不会被立刻推送到TargetBucket中,会延迟一段时间。
日志名称
字段名称 | 示例 | 备注 |
---|---|---|
BucketOwner | mailaddress@ctyun.cn | 源Bucket的Owner。 |
Bucket名称 | mybucket | 请求的bucket,如果OOS收到一个错误的bucket名称,那么这个请求不会出现在任何log中。 |
Time | 04/08/2012 22:34:02 zz | 请求到达的时间格式是dd/MM/yyyy HH:mm:ss zz。 |
Remote IP | 72.21.206.5 | 请求者的IP地址。中间的代理和防火墙可能会隐藏实际发出请求的机器的地址。 |
Requester | 根用户邮箱:mailaddress@ctyun.cn。 子用户:arn:ctyun:iam::10rc2arpn6306:user/test_user。 匿名用户:Anonymous。 |
如果是根用户,显示根用户的邮箱,如:mailaddress@ctyun.cn。 如果是子用户,显示子用户的ARN,如:arn:ctyun:iam::10rc2arpn6306:user/test_user。 如果是匿名访问,显示“Anonymous”。 |
Request ID | e4dd82b2f0994896 | Request ID是OOS生成的一个字符串,用于唯一标示每个请求。 |
Operation | REST.PUT.OBJECT | REST.HTTP_method. resource_type。 |
Key | /photos/2012/08/puppy.jpg | 请求的“Key”部分,URL编码。如果请求中没有指定文件,显示“-”。 |
Request-URI | "GET /mybucket/photos/2012/08/puppy.jpg HTTP/1.1" | HTTP请求中的Request-URI部分。 |
HTTP status | 200 | 响应的HTTP状态码。 |
Error Code | NoSuchBucket | OOS错误码,如果没有错误,显示“-”。 |
Bytes Sent | 2662992 | 写请求或读响应发送的字节数,不包括HTTP协议的头。如果是0,显示“-”。 |
Object Size | 3462992 | Object的总大小。 |
Time | 70 | 从收到请求到发出响应的时间,单位是ms。 |
Referer | "http://oos.ctyun.cn" | HTTP Referer请求头的值。 |
User-Agent | "curl/7.15.1" | HTTP User-Agent请求头的值。 |
Version Id | 3HL4kqtJvjVBH40Nrjfkd | 请求中的versionId参数,如果没有,显示“-”。 |
Turn-Around Time | 1024 | OOS处理请求的时间,单位毫秒。即OOS接到客户端请求最后一个字节的时间,至OOS向客户端发送第一个响应字节的时间。 响应码为200和206的GET Object请求显示处理请求时间,其他操作显示“ - ”。 |