问题描述
SelectObject请求XML中Range节点取值有误。
问题原因
您发起了SelectObject请求,并在请求体XML中通过<Range>设置的查询文件内容范围不正确。
问题示例
以下请求中通过<Range>节点指定了文件内容查询范围,但是Range参数取值格式有误。
POST /oss-select/bigcsv_normal.csv?x-oss-process=csv%2Fselect HTTP/1.1
Date: Fri, 25 May 2018 22:11:39 GMT
Authorization: OSS qn6q**************:77Dv****************
Host: host name
<?xml version="1.0"?>
<SelectRequest>
<Expression>c2VsZWN0IGNvdW50KCopIGZyb20gb3Nzb2JqZWN0IHdoZXJlIF80ID4gNDU=
</Expression>
<InputSerialization>
<CSV>
<Range>line=10-20</Range>
<AllowQuotedRecordDelimiter>false</AllowQuotedRecordDelimiter>
</CSV>
</InputSerialization>
<OutputSerialization>
......
</OutputSerialization>
</SelectRequest>
解决方案
如果您希望指定查询文件的范围,您需要在XML中提供Range节点,该节点支持以下两种格式:
按行查询:line-range=start-end。例如,line-range=10-20表示扫描第10行到第20行。
按Split查询:split-range=start-end。例如,split-range=10-20表示扫描第10到第20个split。
其中start和end均为inclusive。该节点仅在文件为CSV格式或者JSON类型为LINES时使用。
POST /oss-select/bigcsv_normal.csv?x-oss-process=csv%2Fselect HTTP/1.1
Date: Fri, 25 May 2018 22:11:39 GMT
Authorization: OSS qn6q**************:77Dv****************
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
<?xml version="1.0"?>
<SelectRequest>
<Expression>c2VsZWN0IGNvdW50KCopIGZyb20gb3Nzb2JqZWN0IHdoZXJlIF80ID4gNDU=
</Expression>
<InputSerialization>
<CSV>
<Range>line-range=10-20</Range>
</CSV>
</InputSerialization>
<OutputSerialization>
......
</OutputSerialization>
</SelectRequest>
相关文档
文档内容是否对您有帮助?