全部产品
Search
文档中心

Object Storage Service:CreateSelectObjectMeta

更新时间:Jul 02, 2025

Anda dapat memanggil operasi CreateSelectObjectMeta untuk mendapatkan informasi tentang sebuah objek, seperti jumlah total baris dan jumlah split. Untuk objek CSV, Anda juga dapat memperoleh jumlah total kolom dalam objek tersebut saat memanggil operasi ini. Sebuah objek terdiri dari beberapa blok data, di mana setiap blok data sesuai dengan satu split. Split terdiri dari baris-baris yang berurutan. Jika informasi yang diminta tidak tersedia dalam objek CSV atau JSON, seluruh objek akan dipindai untuk menganalisis dan mencatat informasi sebelumnya. Informasi yang diperoleh pada pemanggilan API pertama digunakan ketika operasi dipanggil kembali, sehingga seluruh objek tidak perlu dipindai ulang.

Catatan penggunaan

  • Untuk memanggil operasi CreateSelectObjectMeta, Anda harus memiliki izin tulis pada objek tersebut.

  • Jika operasi berhasil, kode status HTTP 200 dikembalikan. Namun, jika objek bukan objek CSV atau JSON LINES yang valid, atau jika pemisah yang ditentukan tidak sesuai dengan objek CSV yang ada, kode status HTTP 400 dikembalikan.

Sintaksis

Operasi ini mendukung sintaksis permintaan berikut untuk objek CSV dan JSON.

  • Sintaksis permintaan untuk objek CSV

    POST  /samplecsv?x-oss-process=csv/meta
    <CsvMetaRequest>
        <InputSerialization>
            <CompressionType>None</CompressionType>
            <CSV>
                <RecordDelimiter>Karakter yang di-enkode Base64</RecordDelimiter>
                <FieldDelimiter>Karakter yang di-enkode Base64</FieldDelimiter>
                <QuoteCharacter>Karakter yang di-enkode Base64</QuoteCharacter>
            </CSV>
        </InputSerialization>
        <OverwriteIfExists>false|true</OverwriteIfExists>
    </CsvMetaRequest>
  • Sintaksis permintaan untuk objek JSON

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

Elemen permintaan

Elemen

Tipe

Deskripsi

CsvMetaRequest

Container

Kontainer yang menyimpan permintaan CreateSelectObjectMeta untuk objek CSV.

Node anak: InputSerialization

Node induk: none

JsonMetaRequest

Container

Kontainer yang menyimpan permintaan CreateSelectObjectMeta untuk objek JSON.

Node anak: InputSerialization

Node induk: none

InputSerialization

Container

Opsional. Menentukan parameter serialisasi input.

Node anak: CompressionType, CSV, dan JSON

Node induk: CsvMetaRequest dan JsonMetaRequest

OverwriteIfExists

bool

Opsional. Menentukan apakah akan menghitung ulang SelectMeta dan menimpa data yang ada. Nilai false menunjukkan bahwa hasil langsung dikembalikan jika SelectMeta sudah ada. Nilai default: false.

Node anak: none

Node induk: CsvMetaRequest dan JsonMetaRequest

CompressionType

Enumerasi

Opsional. Jenis kompresi objek. Nilai valid: None.

Node anak: none

Node induk: InputSerialization

RecordDelimiter

String

Opsional. Baris baru yang di-enkode Base64 yang ingin Anda gunakan untuk memisahkan baris dalam objek CSV. Nilai default: \n. Sebelum nilai elemen ini di-enkode, nilainya harus merupakan nilai ANSI dengan panjang hingga dua karakter. Contohnya, \n digunakan untuk menunjukkan baris baru dalam Java.

Node anak: none

Node induk: CSV

FieldDelimiter

String

Opsional. Pemisah yang ingin Anda gunakan untuk memisahkan nilai dalam objek CSV. Nilai parameter ini harus di-enkode Base64. Nilai default: ,.

Sebelum nilai elemen ini di-enkode, nilainya harus merupakan nilai ANSI dengan panjang satu karakter. Contohnya, , digunakan untuk menunjukkan koma dalam Java.

Node anak: none

Node induk: CSV (input dan output)

QuoteCharacter

String

Opsional. Karakter kutipan yang di-enkode Base64 yang ingin Anda gunakan dalam objek CSV. Nilai default: \". Dalam objek CSV, line feed dan pemisah kolom yang diapit tanda kutip diproses sebagai karakter normal. Sebelum nilai elemen ini di-enkode, nilainya harus merupakan nilai ANSI dengan panjang satu karakter. Contohnya, \" digunakan untuk menunjukkan tanda kutip dalam Java.

Node anak: none

Node induk: CSV (input)

CSV

Container

Format objek CSV input.

Node anak: RecordDelimiter, FieldDelimiter, dan QuoteCharacter

Node induk: InputSerialization

JSON

Container

Format objek JSON input.

Node anak: Type

Node induk: InputSerialization

Type

Enumerasi

Tipe objek JSON.

Nilai valid: LINES.

Header respons

Mirip dengan SelectObject, hasil dari CreateSelectObjectMeta juga dikembalikan sebagai frame.

Tipe frame

Nilai

Format payload

Deskripsi

Meta End Frame (CSV)

8388614

offset | total scanned bytes | status| splits count | rows count | columns count | error message

<-8 bytes><------8 bytes------><--4bytes><--4 bytes--><--8 bytes><--4 bytes---><variable size>

Frame yang digunakan untuk melaporkan status akhir operasi CreateSelectObjectMeta.

  • offset: integer 8-bit yang menunjukkan offset saat pemindaian selesai.

  • total scanned bytes: integer 8-bit yang menunjukkan ukuran data yang dipindai.

  • status: integer 4-bit yang menunjukkan status akhir operasi.

  • splits_count: integer 4-bit yang menunjukkan jumlah total split.

  • rows_count: integer 8-bit yang menunjukkan jumlah total baris.

  • cols_count: integer 4-bit yang menunjukkan jumlah total kolom.

  • error_message: pesan kesalahan rinci yang dikembalikan. Jika tidak ada kesalahan yang terjadi, nilai parameter ini adalah null.

Meta End Frame (JSON)

8388615

offset | total scanned bytes | status| splits count | rows count | error message

<-8 bytes><------8 bytes------><--4bytes><--4 bytes--><--8 bytes><variable size>

Frame yang digunakan untuk melaporkan status akhir operasi CreateSelectObjectMeta.

  • offset: integer 8-bit yang menunjukkan offset saat pemindaian selesai.

  • total scanned bytes: integer 8-bit yang menunjukkan ukuran data yang dipindai.

  • status: integer 4-bit yang menunjukkan status akhir operasi.

  • splits_count: integer 4-bit yang menunjukkan jumlah total split.

  • rows_count: integer 8-bit yang menunjukkan jumlah total baris.

  • error_message: pesan kesalahan rinci yang dikembalikan. Jika tidak ada kesalahan yang terjadi, nilai parameter ini adalah null.

Contoh permintaan

Contoh permintaan berikut digunakan untuk memanggil SelectObject untuk objek CSV dan JSON:

  • Contoh permintaan untuk objek 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>
  • Contoh permintaan untuk objek 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

Untuk informasi lebih lanjut tentang perintah ossutil yang sesuai dengan operasi CreateSelectObjectMeta, lihat create-select-object-meta.