Vad är filformatet YML?
.yml är en klartextfil och ett datautbytesformat. Det är ett standardiserat, plattformsoberoende format som lagrar data som läsbar text, organiserad genom en indragsbaserad key: value-struktur. .yml-filer kan läsas och skrivas med hjälp av YAML-bibliotek som finns tillgängliga för praktiskt taget alla större programmeringsspråk. .yml och .yaml identifierar samma format - .yml är den äldre treställiga formen som behållits av många verktyg som docker-compose.yml, .gitlab-ci.yml och GitHub Actions-arbetsflöden. Formatet används oftast för dataserialisering och applikationskonfiguration.
Serialisering är en term som används inom datavetenskap och syftar på konceptet att utbyta data mellan program eller applikationer med hjälp av väldefinierade objekt. Ett objekt kan förstås som en datacontainer. Till exempel är databasposter en form av dataserialisering eftersom de enkelt kan utbytas mellan olika databaser. Serialiserad data kan också ta formen av strukturerade filer som kan skickas mellan applikationer. Bland de mest använda serialiseringsformaten finns .yml, XML, JSON och TOML.
En utmärkande egenskap hos .yml är dess användning av betydelsefulla blanksteg: indrag definierar dokumentets struktur, och endast mellanslag är tillåtna - tabbar är uttryckligen förbjudna enligt specifikationen. Dokument kan valfritt inledas med --- (dokumentstart) och avslutas med .... YAML stöder även radbaserade #-kommentarer, blockskalärer över flera rader med | eller >, samt ankare (&) med alias (*) för att återanvända upprepade värden.
Säkerhet & trygghet
RISK: MEDIUMEn .yml-fil är klartext och körs inte av sig själv, så det är säkert att läsa en. Två verkliga risker: (1) konfigurations-YAML (CI-pipelines, Compose, K8s, Ansible) innehåller ofta hemligheter - tokens, lösenord, nycklar - så klistra inte in dem i oberoende online-validatorer eller skicka in dem publikt. (2) Programmatisk fara: att ladda okänd YAML med en osäker tolk (t.ex. PyYAMLs yaml.load istället för yaml.safe_load) kan köra godtyckliga objekt/kod - använd alltid den säkra laddaren för filer du inte litar på. Redigeringsrisk: en tabb eller feljusterat mellanslag ändrar tyst innebörden, så validera efter redigering.
Formatdetaljer
i ett nötskal- Strangereal IFL camera-map (sällsynt) - Ett fåtal äldre appar återanvände .yml för data som inte var YAML, men idag är filändelsen praktiskt taget alltid YAML-text.
Program som öppnar YML-filer
Tekniska detaljer
djup specifikation| MIME-typ | application/yaml (IANA-registrerad); äldre varianter inkluderar text/yaml, text/x-yaml, application/x-yaml |
| Kodning | UTF-8 (standard och vanligast); UTF-16 och UTF-32 med BOM är tillåtna enligt specifikationen men används sällan i praktiken |
| Filstruktur | Indragsbaserade mappningar (key: value), sekvenser (- item) och skalärer; nästling uttrycks enbart genom indragsnivå |
| Betydelsefulla blanksteg | Indrag definierar struktur; endast mellanslag är tillåtna - tabbar är uttryckligen förbjudna enligt YAML-specifikationen |
| Dokumentmarkörer | Valfritt --- markerar dokumentstart; ... markerar dokumentslut; en enskild .yml-fil kan innehålla flera YAML-dokument separerade av --- |
| Stöd för kommentarer | Radbaserade och inbäddade kommentarer som inleds med # - saknas i JSON och de flesta binära serialiseringsformat |
| Inbyggda datatyper | String, integer, float, boolean, null, timestamp och binary (base64-kodad via !!binary-taggen) |
| Ankare och alias | & deklarerar ett återanvändbart ankare; * refererar (alias) till det - eliminerar upprepningar i komplexa konfigurationsfiler |
| Blockskalärer | | (bokstavlig blockskalär) bevarar radbrytningar som de är; > (vikt blockskalär) slår samman radbrytningar till mellanslag |
| JSON-supermängd | Sedan YAML 1.2 (2009) är varje giltig JSON-fil också giltig YAML, så YAML-tolkar kan läsa JSON nativt |
| Magic bytes / signatur | Ingen - inget binärt huvud eller magiskt nummer; identifieras av sin indragsbaserade key: value-struktur och filändelsen .yml eller .yaml |
| Filstorlek (typisk) | Bytes till tiotals KB för konfigurations- och CI/CD-filer; överstiger sällan några hundra KB |
| Likvärdiga filändelser | .yml och .yaml är identiska i format; .yml är den treställiga formen från DOS-eran som antagits av docker-compose.yml, .gitlab-ci.yml och GitHub Actions |
| Specifikationsdirektiv | Valfritt %YAML 1.2-pragma i början av filen deklarerar specifikationsversionen; de flesta filer utelämnar det och förlitar sig på tolkens standardinställningar |
| Släppt | 2001 (YAML 1.0); YAML 1.1 (2005); current YAML 1.2 (2009, revised 1.2.2 in 2021) |
| Senaste version | YAML 1.2.2 (2021) |
| Öppen standard | Ja · royaltyfri |
| Specifikation | yaml.org |
YML-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om YML-filer.