Blue Sky YAML
Blue Sky YAML は のサンプル(Wikimedia Commons を基にしています)。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
01-blue-sky.yaml0f6ffd57cd39429ef5ffa4f6991d0538f24f1add9569999562ce04b942d2d376Data
設定ファイルやデータ記述で広く使われる人間が読みやすいテキスト形式。固定のバイナリシグネチャはありません。
74 69 74 6C 65 3A title:SIGNATURE = bytes.fromhex("7469746c653a")
OFFSET = 0
def is_yaml(path: str) -> bool:
with open(path, "rb") as f:
f.seek(OFFSET)
head = f.read(len(SIGNATURE))
return head == SIGNATUREconst SIGNATURE = [0x74, 0x69, 0x74, 0x6c, 0x65, 0x3a];
const OFFSET = 0;
// bytes: a Uint8Array / Buffer holding the start of the file
export function isYaml(bytes) {
return SIGNATURE.every((byte, i) => bytes[OFFSET + i] === byte);
}package fileid
import "bytes"
var isyamlSignature = []byte{0x74, 0x69, 0x74, 0x6c, 0x65, 0x3a}
const isyamlOffset = 0
func IsYaml(b []byte) bool {
end := isyamlOffset + len(isyamlSignature)
if len(b) < end {
return false
}
return bytes.Equal(b[isyamlOffset:end], isyamlSignature)
}const SIGNATURE: &[u8] = &[0x74, 0x69, 0x74, 0x6c, 0x65, 0x3a];
const OFFSET: usize = 0;
fn is_yaml(bytes: &[u8]) -> bool {
bytes.get(OFFSET..OFFSET + SIGNATURE.len()) == Some(SIGNATURE)
}<?php
$signature = "\x74\x69\x74\x6c\x65\x3a";
$offset = 0;
function is_yaml(string $bytes): bool {
global $signature, $offset;
return substr($bytes, $offset, strlen($signature)) === $signature;
}YAML Ain’t Markup Language はデータ交換、インポート/エクスポート、パーサのテスト、検証ワークフローで使われます。エンコーディング・区切り文字・バージョン・コンテナ構造が実装の挙動を変えることがあります。
形式が判定できたからといって、信頼できない入力が安全とは限りません。パーサ例外・巨大ファイル・想定外のエンコーディング・外部参照を考慮してください。
11 個のサンプルで、先頭バイト判定・パーサのエラー・アップロード上限・ダウンロード挙動をテストできます。
Blue Sky YAML は のサンプル(Wikimedia Commons を基にしています)。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
01-blue-sky.yaml0f6ffd57cd39429ef5ffa4f6991d0538f24f1add9569999562ce04b942d2d376Flower Garden YAML は のサンプル(Wikimedia Commons を基にしています)。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
02-flower-garden.yamldd741065e0186333a677b530975c934fd052fe7d672bb53746c5e86a52d8bea3Navy Blue Sky YAML は のサンプル(Wikimedia Commons を基にしています)。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
03-navy-blue-sky.yaml98431cf0f854d07f47f9d99219d28e4dce87b753b35b78a9aaf750c972b782c5Nature of the Sky YAML は のサンプル(Wikimedia Commons を基にしています)。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
04-nature-sky.yaml6cfd66f8a3f6391bce8291452f851ccff9b359b9436e7ceeb82855f96f488b7fSky Landscape YAML は のサンプル(Wikimedia Commons を基にしています)。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
05-sky-landscape.yaml59ffd56784b0c6233a867ba538b25dd741737a7372176accca405e50e9c6ca81Starry Sky YAML は のサンプル(Wikimedia Commons を基にしています)。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
06-starry-sky.yamlc4c03b904441a9b77d20f23eb15af66255c0bb17cc2bf1bdb327a7b088a73381Blue Night Sky YAML は のサンプル(Wikimedia Commons を基にしています)。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
07-blue-night-sky.yamle4cc3804885f18f7b696fa22d7232170e584f10a1ca199aefbaafed4df688b00Hibiscus Flower YAML は のサンプル(Wikimedia Commons を基にしています)。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
08-hibiscus-flower.yaml722fb2f424628791e265901aff3fd1ca55e27e721d0c138d5e5752b457735d21Arctic Sky YAML は のサンプル(Wikimedia Commons を基にしています)。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
09-arctic-sky.yamlfd0d557c83c5914bfe69a6c76d9f7f1a52e7ebc03b5a19e2afc53cb8f3f51810Sunset Rays YAML は のサンプル(Wikimedia Commons を基にしています)。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
10-sunset-rays.yaml4efad6d8a06c0965b158bb5e9fac03d45ec2fe4eeb9c1c2b5c62767ced5a26dcNASA Blue Marble YAML は のサンプル(NASA Image and Video Library を基にしています)。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
nasa-blue-marble-2012-east.yaml8e37e194ab4ff8cee72db6ad2c6fe0e35ad70fd5e3bf7c97067eca2e0b8b07e3YAML Ain’t Markup Language ファイルはバイトシグネチャ 74 69 74 6C 65 3A ("title:") で始まります。拡張子に頼らず、この先頭バイトを読み取って形式を判定してください。
YAML Ain’t Markup Language のMIMEタイプは application/yaml, text/yaml です。
YAML Ain’t Markup Language ファイルは .yaml, .yml 拡張子を使います。拡張子は慣習にすぎず中身を保証しないため、シグネチャや構造のチェックと組み合わせてください。