Obtiene metadatos de un objeto CSV o JSON, incluido el número total de filas, splits y columnas (solo para CSV). Cada objeto se compone de bloques de datos, donde cada bloque corresponde a un split de filas consecutivas. Si los metadatos no existen previamente, se analiza el objeto completo y se registran los resultados para llamadas posteriores sin necesidad de volver a analizarlo.
Notas de uso
Para llamar a la operación CreateSelectObjectMeta, debe tener permisos de escritura sobre el objeto.
Si la operación se completa correctamente, se devuelve el código de estado HTTP 200. Si el objeto no es un objeto CSV o JSON LINES válido, o si el delimitador especificado no coincide con los objetos CSV existentes, se devuelve el código de estado HTTP 400.
Sintaxis
Esta operación utiliza la siguiente sintaxis de solicitud para objetos CSV y JSON.
-
Sintaxis de solicitud para objetos 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>
-
Sintaxis de solicitud para objetos JSON
POST /samplecsv?x-oss-process=json/meta <JsonMetaRequest> <InputSerialization> <CompressionType>None</CompressionType> <JSON> <Type>LINES</Type> </JSON> </InputSerialization> <OverwriteIfExists>false|true</OverwriteIfExists> </JsonMetaRequest>
Elementos de la solicitud
|
Elemento |
Tipo |
Descripción |
|
CsvMetaRequest |
Container |
Contenedor de la solicitud CreateSelectObjectMeta para objetos CSV. Nodos secundarios: InputSerialization Nodos primarios: ninguno |
|
JsonMetaRequest |
Container |
Contenedor de la solicitud CreateSelectObjectMeta para objetos JSON. Nodos secundarios: InputSerialization Nodos primarios: ninguno |
|
InputSerialization |
Container |
Opcional. Parámetros de serialización de entrada. Nodos secundarios: CompressionType, CSV y JSON Nodos primarios: CsvMetaRequest y JsonMetaRequest |
|
OverwriteIfExists |
bool |
Opcional. Especifica si se debe recalcular SelectMeta y sobrescribir los datos existentes. Un valor false devuelve directamente el resultado existente. Valor predeterminado: false. Nodos secundarios: ninguno Nodos primarios: CsvMetaRequest y JsonMetaRequest |
|
CompressionType |
Enumeration |
Opcional. Tipo de compresión del objeto. Valor válido: None. Nodos secundarios: ninguno Nodos primarios: InputSerialization |
|
RecordDelimiter |
String |
Opcional. Salto de línea codificado en Base64 que se usa para separar filas en el objeto CSV. Valor predeterminado: \n. Antes de la codificación, el valor debe ser un valor ANSI de hasta dos caracteres de longitud. Por ejemplo, \n indica un salto de línea en Java. Nodos secundarios: ninguno Nodos primarios: CSV |
|
FieldDelimiter |
String |
Opcional. Delimitador codificado en Base64 que se usa para separar valores en el objeto CSV. Valor predeterminado: Antes de la codificación, el valor debe ser un valor ANSI de un carácter de longitud. Por ejemplo, Nodos secundarios: ninguno Nodos primarios: CSV (entrada y salida) |
|
QuoteCharacter |
String |
Opcional. Carácter de comillas codificado en Base64 para el objeto CSV. Valor predeterminado: \". En un objeto CSV, los saltos de línea y los delimitadores de columna entre comillas se tratan como caracteres literales. Antes de la codificación, el valor debe ser un valor ANSI de un carácter de longitud. Por ejemplo, \" indica unas comillas en Java. Nodos secundarios: ninguno Nodos primarios: CSV (entrada) |
|
CSV |
Container |
Formato de entrada del objeto CSV. Nodos secundarios: RecordDelimiter, FieldDelimiter y QuoteCharacter Nodos primarios: InputSerialization |
|
JSON |
Container |
Formato de entrada del objeto JSON. Nodos secundarios: Type Nodos primarios: InputSerialization |
|
Type |
Enumeration |
Tipo del objeto JSON. Valor válido: LINES. |
Encabezados de respuesta
Al igual que SelectObject, CreateSelectObjectMeta devuelve los resultados en forma de frames.
|
Tipo de frame |
Valor |
Formato del payload |
Descripción |
|
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> |
Reporta el estado final de una operación 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> |
Reporta el estado final de una operación CreateSelectObjectMeta.
|
Solicitudes de ejemplo
A continuación se muestran ejemplos de cómo llamar a CreateSelectObjectMeta para objetos CSV y JSON:
-
Solicitudes de ejemplo para objetos 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> -
Solicitudes de ejemplo para objetos 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
Para obtener más información sobre el comando ossutil correspondiente a la operación CreateSelectObjectMeta, consulte create-select-object-meta.