PutUserDefinedLogFieldsConfig接口用于为存储空间(Bucket)实时日志中的user_defined_log_fields字段进行个性化配置。您可以将OSS请求中用户关心的请求头或查询参数信息记录到该字段中去以便后续分析请求。
注意事项
- 如需调用PutUserDefinedLogFieldsConfig接口为存储空间(Bucket)实时日志中的 - user_defined_log_fields字段进行个性化配置,您必须拥有- oss:PutUserDefinedLogFieldsConfig权限。具体操作,请参见为RAM用户授予自定义的权限策略。
- 本功能将相关信息统一编码后填入固定字段 - user_defined_log_fields中。- user_defined_log_fields字段的值是一个JSON文本Base64编码后的值,这个JSON文本默认有一个字段为“truncated”用于表示是否有截断发生,另外有两个字段“headers”和“querys”分别对应用户配置的请求头和查询参数信息。
- 自定义请求头个数和查询参数的个数之和不能超过6。 
- 自定义请求头及查询参数的key、value长度总和不能超过1024字节,超过部分会被截断。 
- 请求头不支持下划线(_),可以使用短划线(-)替代。查询参数支持下划线(_)。 
- 请求头需要遵从HTTP协议的规定。必须是可打印的ASCII字符,即字符33到字符126,支持小数点(.),不支持冒号(:)。 
请求语法
PUT /?userDefinedLogFieldsConfig HTTP/1.1
Date: GMT Date
Content-Length:ContentLength
Content-Type: application/xml
Host: BucketName.oss.aliyuncs.com
Authorization: SignatureValue
<?xml version="1.0" encoding="UTF-8"?>
<UserDefinedLogFieldsConfiguration>
	<HeaderSet>
		<header>header1</header>
		<header>header2</header>
		<header>header3</header>
	</HeaderSet>
	<ParamSet>
		<parameter>param1</parameter>
		<parameter>param2</parameter>
	</ParamSet>
</UserDefinedLogFieldsConfiguration>当您在OSS ON云盒中调用该接口时,您需要将Host替换为云盒Endpoint。更多信息,请参见云盒Endpoint。
请求头
此接口仅涉及公共请求头。更多信息,请参见公共请求头(Common Request Headers)。
请求元素
| 名称 | 类型 | 是否必需 | 示例值 | 描述 | 
| UserDefinedLogFieldsConfiguration | 容器 | 是 | 不涉及 | 用户自定义日志配置信息的容器。 子元素:HeaderSet、ParamSet 父元素:无 | 
| HeaderSet | 容器 | 否 | 不涉及 | 自定义请求头配置信息的容器。 子元素:header 父元素:无UserDefinedLogFieldsConfiguration | 
| header | 字符串 | 否 | header1 | 自定义请求头信息。 子元素:无 父元素:HeaderSet | 
| ParamSet | 容器 | 否 | 不涉及 | 自定义查询参数配置信息的容器。 子元素:parameter 父元素:无UserDefinedLogFieldsConfiguration | 
| parameter | 字符串 | 否 | param1 | 自定义查询参数信息。 子元素:无 父元素:ParamSet | 
响应头
此接口仅涉及公共响应头。更多信息,请参见公共响应头(Common Response Headers)。
示例
请求示例
PUT /?userDefinedLogFieldsConfig HTTP/1.1
Date: GMT Date
Content-Length:ContentLength
Content-Type: application/xml
Host: BucketName.oss.aliyuncs.com
Authorization: SignatureValue
<?xml version="1.0" encoding="UTF-8"?>
<UserDefinedLogFieldsConfiguration>
	<HeaderSet>
		<header>header1</header>
		<header>header2</header>
		<header>header3</header>
	</HeaderSet>
	<ParamSet>
		<parameter>param1</parameter>
		<parameter>param2</parameter>
	</ParamSet>
</UserDefinedLogFieldsConfiguration>响应示例
HTTP/1.1 200 OK
x-oss-request-id: 534B371674125A4D8906008B
Date: Date
Content-Length: 0
Connection: keep-alive
Server: AliyunOSSSDK
此接口所对应的各语言SDK如下:
命令行工具ossutil
PutUserDefinedLogFieldsConfig接口所对应的ossutil命令,请参见put-user-defined-log-fields-config。