全部產品
Search
文件中心

Object Storage Service:0016-00000836

更新時間:Jun 08, 2024

問題描述

SelectObject請求體XML中設定了Range標籤,但是目標檔案的Select中繼資料與請求體XML中設定的中繼資料不匹配。

問題原因

您發起了SelectObject請求,並在請求體XML中通過<Range>設定了要查詢的檔案內容約制,但是查詢的目標檔案對應的Select Meta與您請求中的參數不匹配。例如RecordDelimiter不匹配或者QuoteCharacter不匹配。

問題樣本

例如,您通過CreateSelectObjectMeta請求建立Select Meta。

POST  /samplecsv?x-oss-process=csv/meta
Date: Fri, 25 May 2018 22:11:39 GMT
Authorization: OSS qn6q**************:77Dv****************
Host: host name
<CsvMetaRequest>
    <InputSerialization>
        <CompressionType>None</CompressionType>
        <CSV>
            <RecordDelimiter>LA==</RecordDelimiter>
            <FieldDelimiter>Cg==</FieldDelimiter>
            <QuoteCharacter>Ig==</QuoteCharacter>
        </CSV>
    </InputSerialization>
    <OverwriteIfExists>true</OverwriteIfExists>
</CsvMetaRequest>

然後,通過SelectObject發起如下查詢請求。

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-range=10-20</Range>
            <FileHeaderInfo>Ignore</FileHeaderInfo>
            <RecordDelimiter>Cg==</RecordDelimiter>
            <FieldDelimiter>LA==</FieldDelimiter>
            <QuoteCharacter>Ig==</QuoteCharacter>
        </CSV>
    </InputSerialization>
    <OutputSerialization>
        ......
    </OutputSerialization>
</SelectRequest>

SelectObject請求中指定的RecordDelimiterFieldDelimiter與CreateSelectObjectMeta請求指定的參數不一致,導致請求報錯。

解決方案

  • 如果您希望指定查詢檔案的範圍,您可以在XML中提供Range節點。使用Range參數查詢檔案時,需要包含Select Meta,且要求查詢請求參數與Select Meta中的對應參數保持一致。更多資訊,請參見CreateSelectObjectMeta

  • 參考ErrorMessage中提示的Select Meta各項參數的值對請求體XML進行調整。

相關文檔