すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:0016-00000837

最終更新日:Apr 07, 2025

問題の説明

SelectObjectリクエストには、クエリ範囲にレコード区切り文字が含まれていません。

原因

SelectObjectリクエストを開始し、XML構造のrangeリクエストヘッダーまたはRange要素を使用してクエリするオブジェクトの範囲を指定しましたが、その範囲にはレコード区切り文字がありません。

次のリクエストで指定されているRecordDelimiterはCg ==で、デコード後は \nです。 リクエストで指定したクエリ範囲の10バイト目から20バイト目までにレコード区切り文字が見つからない場合、リクエストエラーが発生します。

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 LTAI****************:77Dv****************
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Range: bytes=10-20
<?xml version="1.0"?>
<SelectRequest>
    <Expression>c2VsZWN0IGNvdW50KCopIGZyb20gb3Nzb2JqZWN0IHdoZXJlIF80ID4gNDU=
    </Expression>
    <InputSerialization>
        <CSV>
            <FileHeaderInfo>Ignore</FileHeaderInfo>
            <RecordDelimiter>Cg==</RecordDelimiter>
            <FieldDelimiter>LA==</FieldDelimiter>
            <QuoteCharacter>Ig==</QuoteCharacter>
        </CSV>
    </InputSerialization>
    <OutputSerialization>
        ......
    </OutputSerialization>
</SelectRequest>

ソリューション

クエリ対象オブジェクトの範囲を指定する場合は, クエリ範囲にレコード区切り文字が存在することを確認してください。 範囲クエリを実行するには、XMLの範囲タグを使用することを推奨します。 例:

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 LTAI****************:77Dv****************
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
<?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>

関連ドキュメント