Récupère les métadonnées d'un objet CSV ou JSON, notamment le nombre total de lignes, de shards et de colonnes (uniquement pour les fichiers CSV). Chaque objet est composé de blocs de données, où chaque bloc correspond à un shard de lignes consécutives. Si les métadonnées n'existent pas déjà, le système analyse l'objet entier et enregistre les résultats pour les appels ultérieurs, évitant ainsi une nouvelle analyse.
Notes d'utilisation
Pour appeler l'opération CreateSelectObjectMeta, vous devez disposer des autorisations d'écriture sur l'objet.
En cas de succès, l'opération renvoie le code d'état HTTP 200. Si l'objet n'est pas un objet CSV ou JSON LINES valide, ou si le délimiteur spécifié ne correspond pas aux objets CSV existants, l'opération renvoie le code d'état HTTP 400.
Syntaxe
Cette opération utilise la syntaxe de requête suivante pour les objets CSV et JSON.
-
Syntaxe de requête pour les objets 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>
-
Syntaxe de requête pour les objets JSON
POST /samplecsv?x-oss-process=json/meta <JsonMetaRequest> <InputSerialization> <CompressionType>None</CompressionType> <JSON> <Type>LINES</Type> </JSON> </InputSerialization> <OverwriteIfExists>false|true</OverwriteIfExists> </JsonMetaRequest>
Éléments de requête
|
Élément |
Type |
Description |
|
CsvMetaRequest |
Container |
Conteneur de la requête CreateSelectObjectMeta pour les objets CSV. Nœuds enfants : InputSerialization Nœuds parents : aucun |
|
JsonMetaRequest |
Container |
Conteneur de la requête CreateSelectObjectMeta pour les objets JSON. Nœuds enfants : InputSerialization Nœuds parents : aucun |
|
InputSerialization |
Container |
Facultatif. Paramètres de sérialisation d'entrée. Nœuds enfants : CompressionType, CSV et JSON Nœuds parents : CsvMetaRequest et JsonMetaRequest |
|
OverwriteIfExists |
bool |
Facultatif. Indique s'il faut recalculer SelectMeta et écraser les données existantes. La valeur false renvoie directement le résultat existant. Valeur par défaut : false. Nœuds enfants : aucun Nœuds parents : CsvMetaRequest et JsonMetaRequest |
|
CompressionType |
Enumeration |
Facultatif. Type de compression de l'objet. Valeur valide : None. Nœuds enfants : aucun Nœud parent : InputSerialization |
|
RecordDelimiter |
String |
Facultatif. Saut de ligne encodé en Base64 utilisé pour séparer les lignes dans l'objet CSV. Valeur par défaut : \n. Avant l'encodage, la valeur doit être une valeur ANSI d'une longueur maximale de deux caractères. Par exemple, \n indique un saut de ligne en Java. Nœuds enfants : aucun Nœud parent : CSV |
|
FieldDelimiter |
String |
Facultatif. Délimiteur encodé en Base64 utilisé pour séparer les valeurs dans l'objet CSV. Valeur par défaut : Avant l'encodage, la valeur doit être une valeur ANSI d'un seul caractère. Par exemple, Nœuds enfants : aucun Nœud parent : CSV (entrée et sortie) |
|
QuoteCharacter |
String |
Facultatif. Caractère de guillemet encodé en Base64 pour l'objet CSV. Valeur par défaut : \". Dans un objet CSV, les sauts de ligne et les délimiteurs de colonne entourés de guillemets sont traités comme des caractères littéraux. Avant l'encodage, la valeur doit être une valeur ANSI d'un seul caractère. Par exemple, \" indique un guillemet en Java. Nœuds enfants : aucun Nœud parent : CSV (entrée) |
|
CSV |
Container |
Format d'entrée de l'objet CSV. Nœuds enfants : RecordDelimiter, FieldDelimiter et QuoteCharacter Nœud parent : InputSerialization |
|
JSON |
Container |
Format d'entrée de l'objet JSON. Nœud enfant : Type Nœud parent : InputSerialization |
|
Type |
Enumeration |
Type de l'objet JSON. Valeur valide : LINES. |
En-têtes de réponse
Comme SelectObject, CreateSelectObjectMeta renvoie les résultats sous forme de frames.
|
Type de frame |
Valeur |
Format du payload |
Description |
|
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> |
Signale l'état final d'une opération 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> |
Signale l'état final d'une opération CreateSelectObjectMeta.
|
Exemples de requêtes
Les exemples suivants montrent comment appeler CreateSelectObjectMeta pour les objets CSV et JSON :
-
Exemples de requêtes pour les objets 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> -
Exemples de requêtes pour les objets 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
Pour plus d'informations sur la commande ossutil pour l'opération CreateSelectObjectMeta, consultez create-select-object-meta.