Blue Sky WEBMANIFEST
Blue Sky WEBMANIFEST は のサンプル(Wikimedia Commons を基にしています)。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
01-blue-sky.webmanifesta1118202840507a9463f860fb27d1f57471953a6ef177f47826fd51d0c543d04Web
PWAの名前、アイコン、表示方式などを記述するJSONベースのWebアプリ設定ファイル。
7B {SIGNATURE = bytes.fromhex("7b")
OFFSET = 0
def is_webmanifest(path: str) -> bool:
with open(path, "rb") as f:
f.seek(OFFSET)
head = f.read(len(SIGNATURE))
return head == SIGNATUREconst SIGNATURE = [0x7b];
const OFFSET = 0;
// bytes: a Uint8Array / Buffer holding the start of the file
export function isWebmanifest(bytes) {
return SIGNATURE.every((byte, i) => bytes[OFFSET + i] === byte);
}package fileid
import "bytes"
var iswebmanifestSignature = []byte{0x7b}
const iswebmanifestOffset = 0
func IsWebmanifest(b []byte) bool {
end := iswebmanifestOffset + len(iswebmanifestSignature)
if len(b) < end {
return false
}
return bytes.Equal(b[iswebmanifestOffset:end], iswebmanifestSignature)
}const SIGNATURE: &[u8] = &[0x7b];
const OFFSET: usize = 0;
fn is_webmanifest(bytes: &[u8]) -> bool {
bytes.get(OFFSET..OFFSET + SIGNATURE.len()) == Some(SIGNATURE)
}<?php
$signature = "\x7b";
$offset = 0;
function is_webmanifest(string $bytes): bool {
global $signature, $offset;
return substr($bytes, $offset, strlen($signature)) === $signature;
}Web App Manifest はデータ交換、インポート/エクスポート、パーサのテスト、検証ワークフローで使われます。エンコーディング・区切り文字・バージョン・コンテナ構造が実装の挙動を変えることがあります。
形式が判定できたからといって、信頼できない入力が安全とは限りません。パーサ例外・巨大ファイル・想定外のエンコーディング・外部参照を考慮してください。
11 個のサンプルで、先頭バイト判定・パーサのエラー・アップロード上限・ダウンロード挙動をテストできます。
Blue Sky WEBMANIFEST は のサンプル(Wikimedia Commons を基にしています)。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
01-blue-sky.webmanifesta1118202840507a9463f860fb27d1f57471953a6ef177f47826fd51d0c543d04Flower Garden WEBMANIFEST は のサンプル(Wikimedia Commons を基にしています)。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
02-flower-garden.webmanifesteef127160923ca09488c5d29dec1dab624aca94aac0fb5fd7fbc42c299f78e6cNavy Blue Sky WEBMANIFEST は のサンプル(Wikimedia Commons を基にしています)。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
03-navy-blue-sky.webmanifest8e0dbcd1131b2f60f715b7c3389b5104ccbbbbc4ee3ec65f99ed96cae1da5310Nature of the Sky WEBMANIFEST は のサンプル(Wikimedia Commons を基にしています)。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
04-nature-sky.webmanifest9cb48a614207221de2a79b236f72bc4ed7645201a8bba697342b01628ef87510Sky Landscape WEBMANIFEST は のサンプル(Wikimedia Commons を基にしています)。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
05-sky-landscape.webmanifesteb11dc5d563a2baaf8690fcfc2999ff585e7bcc318d5274f5a08c354a710f85cStarry Sky WEBMANIFEST は のサンプル(Wikimedia Commons を基にしています)。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
06-starry-sky.webmanifest0c3c3e69bd4fbeea93f962179ab868f22d0b12dc0401292b257844ad46dff4afBlue Night Sky WEBMANIFEST は のサンプル(Wikimedia Commons を基にしています)。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
07-blue-night-sky.webmanifest6023e36c74558a74df60bdf5a0c024b1f118f795b310cc9caae2124e626668f9Hibiscus Flower WEBMANIFEST は のサンプル(Wikimedia Commons を基にしています)。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
08-hibiscus-flower.webmanifest09e21b04ec711650660ce9802c3fa71fab13d143acd9c566a4e146b5e7cb1858Arctic Sky WEBMANIFEST は のサンプル(Wikimedia Commons を基にしています)。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
09-arctic-sky.webmanifest19215d869be10789687871a0ce774bdf23fd781245532aaeb036b78d60b719e5Sunset Rays WEBMANIFEST は のサンプル(Wikimedia Commons を基にしています)。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
10-sunset-rays.webmanifestd38702e1cabd3611690e693e6b4875a9ce0850100288da2865fe0ab226b8b012NASA Blue Marble WEBMANIFEST は のサンプル(NASA Image and Video Library を基にしています)。ダウンロード・パーサ・プレビュー・ファイル種別判定のテストに使えます。
nasa-blue-marble-2012-east.webmanifest72c3dc4637b4ffba79fb2511189c38f45b0aa82fe6f5850a9c48966b04383b99Web App Manifest ファイルはバイトシグネチャ 7B ("{") で始まります。拡張子に頼らず、この先頭バイトを読み取って形式を判定してください。
Web App Manifest のMIMEタイプは application/manifest+json です。
Web App Manifest ファイルは .webmanifest 拡張子を使います。拡張子は慣習にすぎず中身を保証しないため、シグネチャや構造のチェックと組み合わせてください。