HCC2DF コンテナ形式

HCC2DF は API 呼び出し時に既定で使われるバイナリコンテナ形式です(structured: false を渡すと使用しません)。元のペイロードにファイル名と必要に応じて zlib 圧縮を付与します。

← API ドキュメントに戻る

バイナリレイアウト

複数バイトのフィールドはすべてビッグエンディアンです。コンテナはパディングのない連続したバイト列です。

オフセットサイズ(バイト)項目説明
06magicASCII 文字列 HCC2DF。常に存在し、デコーダが形式を判別するために使います。
61version形式バージョン。現在は常に 0x01 です。
71compression圧縮フラグ。0x00 = 非圧縮、0x01 = zlib-deflate 圧縮。
81nameLen後続する UTF-8 ファイル名のバイト長。有効範囲は 1〜127。
9nameLennameUTF-8 のファイル名。パス区切り文字や null バイトは不可。
9 + nameLen残りcontentペイロード本体。compression == 0x01 の場合は inflate / zlib.decompress で展開します。

圧縮ルール

エンコーダは各ペイロードに対して zlib 圧縮を試みます。圧縮後が元サイズの 90% 未満になる場合にのみ圧縮を採用します。

ファイル名の制約

これらは形式レベルの制約であり、API は不正な inputName をエンコーダへ渡す前に正規化します。

例 — 16 進ダンプ

ASCII 文字列 Hello を note.txt として格納した、非圧縮コンテナの例です。

48 43 43 32 44 46   — magic "HCC2DF"
01                  — version 1
00                  — uncompressed
08                  — filename length: 8 bytes
6e 6f 74 65 2e 74 78 74  — "note.txt"
48 65 6c 6c 6f      — content: "Hello"

関連情報

API ドキュメント — REST API でコードを生成する方法。

コード例 — JavaScript、Python、Java、PHP のサンプル。

← HCC2D Encoder に戻る