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

Object Storage Service:SelectObjectMeta の作成

最終更新日:Apr 18, 2025

CreateSelectObjectMeta 操作を呼び出すと、オブジェクトに関する情報 (合計行数や分割数など) を取得できます。 CSV オブジェクトの場合、この操作を呼び出すと、オブジェクトの合計列数も取得できます。オブジェクトは複数のデータブロックで構成されています。各データブロックは分割に対応しています。分割は連続した行で構成されます。リクエストされた情報が CSV オブジェクトまたは JSON オブジェクトに存在しない場合、オブジェクト全体がスキャンされ、前述の情報が分析および記録されます。最初の API 操作呼び出しで取得された情報は、操作が再度呼び出されたときに使用されます。このようにして、オブジェクト全体を再スキャンする必要はありません。

使用方法

  • CreateSelectObjectMeta 操作を呼び出すには、オブジェクトに対する書き込み権限が必要です。

  • 操作が成功した場合、HTTP ステータスコード 200 が返されます。オブジェクトが有効な CSV オブジェクトまたは JSON LINES オブジェクトでない場合、または指定されたデリミタが既存の CSV オブジェクトと一致しない場合、HTTP ステータスコード 400 が返されます。

構文

この操作では、CSV オブジェクトと JSON オブジェクトに対して次のリクエスト構文がサポートされています。

  • CSV オブジェクトのリクエスト構文

    POST  /samplecsv?x-oss-process=csv/meta
    <CsvMetaRequest>
        <InputSerialization>
            <CompressionType>None</CompressionType>
            <CSV>
                <RecordDelimiter>Base64-encoded character</RecordDelimiter> 
  • JSON オブジェクトのリクエスト構文

    POST  /samplecsv?x-oss-process=json/meta
    <JsonMetaRequest>
        <InputSerialization>
            <CompressionType>None</CompressionType>
            <JSON>
                <Type>LINES</Type>
            </JSON>
        </InputSerialization>
        <OverwriteIfExists>false|true</OverwriteIfExists>
    </JsonMetaRequest>

リクエスト要素

要素

タイプ

説明

CsvMetaRequest

コンテナー

CSV オブジェクトの CreateSelectObjectMeta リクエストを格納するコンテナー。

子ノード: InputSerialization

親ノード: なし

JsonMetaRequest

コンテナー

JSON オブジェクトの CreateSelectObjectMeta リクエストを格納するコンテナー。

子ノード: InputSerialization

親ノード: なし

InputSerialization

コンテナー

オプション。入力シリアル化パラメーターを指定します。

子ノード: CompressionType、CSV、JSON

親ノード: CsvMetaRequest、JsonMetaRequest

OverwriteIfExists

bool

オプション。 SelectMeta を再計算し、既存のデータを上書きするかどうかを指定します。値が false の場合、SelectMeta が既に存在する場合は結果が直接返されます。デフォルト値: false。

子ノード: なし

親ノード: CsvMetaRequest、JsonMetaRequest

CompressionType

列挙型

オプション。オブジェクトの圧縮タイプ。有効な値: None。

子ノード: なし

親ノード: InputSerialization

RecordDelimiter

String

オプション。 CSV オブジェクトの行を区切るために使用する Base64 エンコードされた改行文字。デフォルト値: \n。この要素の値をエンコードする前は、値は最大 2 文字の長さの ANSI 値である必要があります。たとえば、Java では \n は改行を示すために使用されます。

子ノード: なし

親ノード: CSV

FieldDelimiter

String

オプション。 CSV オブジェクトの値を区切るために使用するデリミタ。このパラメーターの値は Base64 エンコードされている必要があります。デフォルト値: ,

この要素の値をエンコードする前は、値は 1 文字の長さの ANSI 値である必要があります。たとえば、Java では , はコンマを示すために使用されます。

子ノード: なし

親ノード: CSV (入力と出力)

QuoteCharacter

String

オプション。 CSV オブジェクトで使用する Base64 エンコードされた引用符。デフォルト値: \"。 CSV オブジェクトでは、引用符で囲まれた改行文字と列デリミタは通常の文字として処理されます。この要素の値をエンコードする前は、値は 1 文字の長さの ANSI 値である必要があります。たとえば、Java では \" は引用符を示すために使用されます。

子ノード: なし

親ノード: CSV (入力)

CSV

コンテナー

入力 CSV オブジェクトのフォーマット。

子ノード: RecordDelimiter、FieldDelimiter、QuoteCharacter

親ノード: InputSerialization

JSON

コンテナー

入力 JSON オブジェクトのフォーマット。

子ノード: Type

親ノード: InputSerialization

Type

列挙型

JSON オブジェクトのタイプ。

有効な値: LINES。

レスポンスヘッダー

SelectObject と同様に、CreateSelectObjectMeta の結果もフレームとして返されます。

フレームタイプ

ペイロードフォーマット

説明

メタエンドフレーム (CSV)

8388614

オフセット | スキャンされた合計バイト数 | ステータス | 分割数 | 行数 | 列数 | エラーメッセージ

<-8 バイト><------8 バイト------><--4 バイト><--4 バイト--><--8 バイト><--4 バイト---><可変サイズ>

CreateSelectObjectMeta 操作の最終状態を報告するために使用されるフレーム。

  • オフセット: スキャン完了時のオフセットを示す 8 ビット整数。

  • スキャンされた合計バイト数: スキャンされたデータのサイズを示す 8 ビット整数。

  • ステータス: 操作の最終状態を示す 4 ビット整数。

  • 分割数: 分割の合計数を示す 4 ビット整数。

  • 行数: 行の合計数を示す 8 ビット整数。

  • 列数: 列の合計数を示す 4 ビット整数。

  • エラーメッセージ: 返される詳細なエラーメッセージ。エラーが発生しない場合、このパラメーターの値は null です。

メタエンドフレーム (JSON)

8388615

オフセット | スキャンされた合計バイト数 | ステータス | 分割数 | 行数 | エラーメッセージ

<-8 バイト><------8 バイト------><--4 バイト><--4 バイト--><--8 バイト><可変サイズ>

CreateSelectObjectMeta 操作の最終状態を報告するために使用されるフレーム。

  • オフセット: スキャン完了時のオフセットを示す 8 ビット整数。

  • スキャンされた合計バイト数: スキャンされたデータのサイズを示す 8 ビット整数。

  • ステータス: 操作の最終状態を示す 4 ビット整数。

  • 分割数: 分割の合計数を示す 4 ビット整数。

  • 行数: 行の合計数を示す 8 ビット整数。

  • エラーメッセージ: 返される詳細なエラーメッセージ。エラーが発生しない場合、このパラメーターの値は null です。

サンプルリクエスト

次のサンプルリクエストは、CSV オブジェクトと JSON オブジェクトに対して SelectObject を呼び出すために使用されます。

  • CSV オブジェクトのサンプルリクエスト

    POST /oss-select/bigcsv_normal.csv?x-oss-process=csv%2Fmeta HTTP/1.1
    Date: Fri, 25 May 2018 23:06:41 GMT
    Content-Type:
    Authorization: OSS qn6q**************:77Dv****************
    User-Agent: aliyun-sdk-dotnet/2.8.0.0(windows 16.7/16.7.0.0/x86;4.0.30319.42000)
    Content-Length: 309
    Expect: 100-continue
    Connection: keep-alive
    Host: Host
    <?xml version="1.0"?>
    <CsvMetaRequest>
        <InputSerialization>
            <CSV>
                <RecordDelimiter>Cg==</RecordDelimiter>
                <FieldDelimiter>LA==</FieldDelimiter>
                <QuoteCharacter>Ig==</QuoteCharacter>
            </CSV>
        </InputSerialization>
        <OverwriteIfExisting>false</OverwriteIfExisting>
    </CsvMetaRequest>
  • JSON オブジェクトのサンプルリクエスト

    POST /oss-select/sample.json?x-oss-process=json%2Fmeta HTTP/1.1
    Date: Fri, 25 May 2018 23:06:41 GMT
    Content-Type:
    Authorization: OSS qn6q**************:77Dv****************
    User-Agent: aliyun-sdk-dotnet/2.8.0.0(windows 16.7/16.7.0.0/x86;4.0.30319.42000)
    Content-Length: 309
    Expect: 100-continue
    Connection: keep-alive
    Host: Host
    <?xml version="1.0"?>
    <JsonMetaRequest>
        <InputSerialization>
            <JSON>
                <Type>LINES</Type>
            </JSON>
        </InputSerialization>
        <OverwriteIfExisting>false</OverwriteIfExisting>
    </JsonMetaRequest>

ossutil

CreateSelectObjectMeta 操作に対応する ossutil コマンドの詳細については、「create-select-object-meta」をご参照ください。