Mengambil metadata objek CSV atau JSON, termasuk jumlah total baris, split, dan kolom (khusus untuk CSV). Setiap objek terdiri atas blok data, dengan setiap blok mewakili satu split yang berisi baris-baris berurutan. Jika metadata belum tersedia, seluruh objek akan dipindai dan hasilnya disimpan untuk panggilan berikutnya tanpa perlu pemindaian ulang.
Catatan penggunaan
-
Untuk memanggil operasi CreateSelectObjectMeta, Anda harus memiliki izin menulis pada objek tersebut.
-
Jika operasi berhasil, kode status HTTP 200 dikembalikan. Jika objek bukan CSV atau JSON LINES yang valid, atau jika pemisah kolom yang ditentukan tidak sesuai dengan objek CSV yang ada, kode status HTTP 400 dikembalikan.
Sintaks
Operasi ini menggunakan sintaks permintaan berikut untuk objek CSV dan JSON.
-
Sintaks permintaan untuk objek CSV
POST /samplecsv?x-oss-process=csv/meta <CsvMetaRequest> <InputSerialization> <CompressionType>None</CompressionType> <CSV> <RecordDelimiter>Base64-encoded character</RecordDelimiter> <FieldDelimiter>Base64-encoded character</FieldDelimiter> <QuoteCharacter>Base64-encoded character</QuoteCharacter> </CSV> </InputSerialization> <OverwriteIfExists>false|true</OverwriteIfExists> </CsvMetaRequest>
-
Sintaks 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
|
Element |
Type |
Description |
|
CsvMetaRequest |
Kontainer |
Kontainer untuk permintaan CreateSelectObjectMeta untuk objek CSV. Node anak: InputSerialization Node induk: none |
|
JsonMetaRequest |
Kontainer |
Kontainer untuk permintaan CreateSelectObjectMeta untuk objek JSON. Node anak: InputSerialization Node induk: none |
|
InputSerialization |
Kontainer |
Opsional. Parameter serialisasi input. Node anak: CompressionType, CSV, dan JSON Node induk: CsvMetaRequest dan JsonMetaRequest |
|
OverwriteIfExists |
bool |
Opsional. Menentukan apakah SelectMeta perlu dihitung ulang dan data yang ada ditimpa. Nilai false mengembalikan hasil yang sudah ada secara langsung. Nilai default: false. Node anak: none Node induk: CsvMetaRequest dan JsonMetaRequest |
|
CompressionType |
Enumeration |
Opsional. Jenis kompresi objek. Nilai valid: None. Node anak: none Node induk: InputSerialization |
|
RecordDelimiter |
String |
Opsional. Karakter line feed yang dikodekan Base64 digunakan untuk memisahkan baris dalam objek CSV. Nilai default: \n. Sebelum dikodekan, nilai tersebut harus berupa nilai ANSI dengan panjang maksimal dua karakter. Misalnya, \n menunjukkan line feed dalam Java. Node anak: none Node induk: CSV |
|
FieldDelimiter |
String |
Opsional. Pemisah kolom yang dikodekan Base64 digunakan untuk memisahkan nilai dalam objek CSV. Nilai default: Sebelum dikodekan, nilai tersebut harus berupa nilai ANSI dengan panjang satu karakter. Misalnya, Node anak: none Node induk: CSV (input dan output) |
|
QuoteCharacter |
String |
Opsional. Karakter tanda kutip yang dikodekan Base64 untuk objek CSV. Nilai default: \". Dalam objek CSV, line feed dan pemisah kolom yang diapit tanda kutip dianggap sebagai karakter literal. Sebelum dikodekan, nilai tersebut harus berupa nilai ANSI dengan panjang satu karakter. Misalnya, \" menunjukkan tanda kutip dalam Java. Node anak: none Node induk: CSV (input) |
|
CSV |
Kontainer |
Format input objek CSV. Node anak: RecordDelimiter, FieldDelimiter, dan QuoteCharacter Node induk: InputSerialization |
|
JSON |
Kontainer |
Format input objek JSON. Node anak: Type Node induk: InputSerialization |
|
Type |
Enumeration |
Jenis objek JSON. Nilai valid: LINES. |
Header respons
Seperti SelectObject, CreateSelectObjectMeta mengembalikan hasil dalam bentuk frame.
|
Jenis 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> |
Menampilkan status akhir operasi CreateSelectObjectMeta.
|
|
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> |
Menampilkan status akhir operasi CreateSelectObjectMeta.
|
Contoh permintaan
Contoh berikut menunjukkan cara memanggil CreateSelectObjectMeta 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: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e 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: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e 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 untuk operasi CreateSelectObjectMeta, lihat create-select-object-meta.