Hva er YML-filformatet?
.yml er en fil i ren tekst og et format for datautveksling. Det er et standardisert, plattformuavhengig format som lagrer data som menneskelig lesbar tekst, organisert gjennom en innrykksbasert key: value-struktur. .yml-filer kan leses og skrives ved hjelp av YAML-biblioteker som er tilgjengelige for nesten alle store programmeringsspråk. .yml og .yaml identifiserer det samme formatet - .yml er den eldre formen med tre bokstaver som er beholdt av mange verktøy som docker-compose.yml, .gitlab-ci.yml og GitHub Actions-arbeidsflyter. Formatet brukes oftest til dataserialisering og applikasjonskonfigurasjon.
Serialisering er et begrep som brukes i informatikk og refererer til konseptet med å utveksle data mellom programmer eller applikasjoner ved hjelp av veldefinerte objekter. Et objekt kan forstås som en databeholder. For eksempel er databaseposter en form for dataserialisering, da de enkelt kan utveksles mellom ulike databaser. Serialiserte data kan også ta form av strukturerte filer som kan sendes mellom applikasjoner. Blant de mest brukte serialiseringsformatene er .yml, XML, JSON og TOML.
Et særtrekk ved .yml er bruken av betydningsfullt tomrom: innrykk definerer dokumentstrukturen, og bare mellomrom er tillatt - tabulatorer er uttrykkelig forbudt i spesifikasjonen. Dokumenter kan valgfritt åpnes med --- (dokumentstart) og avsluttes med .... YAML støtter også innebygde #-kommentarer, blokkskalarer over flere linjer ved bruk av | eller >, og ankere (&) med aliaser (*) for gjenbruk av gjentatte verdier.
Sikkerhet og trygghet
RISIKO: MEDIUMEn .yml-fil er ren tekst og kjører ikke av seg selv, så det er trygt å lese en. To reelle risikoer: (1) konfigurasjons-YAML (CI-pipelines, Compose, K8s, Ansible) inneholder ofte hemmeligheter - tokens, passord, nøkler - så ikke lim det inn i upålitelige online-validatorer eller publiser det åpent. (2) Programmatisk fare: lasting av upålitelig YAML med en usikker analysator (f.eks. PyYAMLs yaml.load i stedet for yaml.safe_load) kan utføre vilkårlige objekter/kode - bruk alltid den sikre lasteren for filer du ikke stoler på. Redigeringsrisiko: en tabulator eller feiljustert mellomrom endrer betydningen i det stille, så valider etter redigering.
Formatdetaljer
i et nøtteskall- Strangereal IFL camera-map (sjelden) - Noen få eldre apper gjenbrukte .yml for data som ikke er YAML, men i dag er utvidelsen nesten alltid YAML-tekst.
Programmer som åpner YML-filer
Tekniske detaljer
dyp spesifikasjon| MIME-type | application/yaml (IANA-registrert); eldre varianter inkluderer text/yaml, text/x-yaml, application/x-yaml |
| Koding | UTF-8 (standard og mest vanlig); UTF-16 og UTF-32 med BOM er tillatt i spesifikasjonen, men sjelden brukt i praksis |
| Filstruktur | Innrykksbaserte tilordninger (key: value), sekvenser (- element) og skalarer; nøsting uttrykkes utelukkende ved innrykksnivå |
| Betydningsfullt tomrom | Innrykk definerer struktur; bare mellomrom er tillatt - tabulatorer er uttrykkelig forbudt i YAML-spesifikasjonen |
| Dokumentmarkører | Valgfri --- markerer dokumentstart; ... markerer dokumentslutt; en enkelt .yml-fil kan inneholde flere YAML-dokumenter separert med --- |
| Støtte for kommentarer | Innebygde kommentarer og kommentarer på hele linjer introdusert med # - mangler i JSON og de fleste binære serialiseringsformater |
| Innebygde datatyper | Streng, heltall, flyttall, boolsk, null, tidsstempel og binær (base64-kodet via !!binary-taggen) |
| Ankere og aliaser | & deklarerer et gjenbrukbart anker; * refererer til det (alias) - eliminerer repetisjon i komplekse konfigurasjonsfiler |
| Blokkskalarer | | (bokstavelig blokkskalar) bevarer linjeskift som de er; > (foldet blokkskalar) slår sammen linjeskift til mellomrom |
| JSON-overmengde | Siden YAML 1.2 (2009) er enhver gyldig JSON-fil også gyldig YAML, så YAML-analysatorer kan lese JSON naturlig |
| Magic bytes / signatur | Ingen - ingen binær header eller magisk nummer; identifisert av sin innrykksbaserte key: value-struktur og utvidelsen .yml eller .yaml |
| Filstørrelse (typisk) | Fra noen få bytes til titalls KB for konfigurasjons- og CI/CD-filer; overstiger sjelden noen få hundre KB |
| Ekvivalente utvidelser | .yml og .yaml er identiske i format; .yml er formen med tre bokstaver fra DOS-æraen adoptert av docker-compose.yml, .gitlab-ci.yml og GitHub Actions |
| Spesifikasjonsversjon-direktiv | Valgfri %YAML 1.2-pragma ved filstart deklarerer spesifikasjonsversjonen; de fleste filer utelater den og stoler på standardinnstillinger |
| Utgitt | 2001 (YAML 1.0); YAML 1.1 (2005); current YAML 1.2 (2009, revised 1.2.2 in 2021) |
| Siste versjon | YAML 1.2.2 (2021) |
| Åpen standard | Ja · royalty-fri |
| Spesifikasjon | yaml.org |
YML-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om YML-filer.