🐔
Linux「ファイル名は255バイトまでにしてね」
背景
著者のプロフィール
・SaaSを提供している自社開発企業で開発。
・エンジニア歴2年強。
問題になったこと
自社製品でLaravelを使用してPDFを作成する処理を実装するタスクがあり、サーバー上でのみPDFが作成されない問題が発生。
結論
ファイル名が長すぎたためだった。
今回はユーザーごとに固有のファイル名にするためユーザー情報をスネークケースで繋げるため長くなってしまうケースがあった。
例:
{ユーザー名}_{固有ID}_.pdf
調べていくと、、、
Linuxで作成できるファイルはファイル名が255バイト以下のみらしいです。
ちなみにUTF-8で日本語は3バイト、英数字は1バイトとなっておりますので日本語でファイルを作る場合は84文字ほどが限界なのでご注意ください。
例:バイト数の計算例
ファイル名
test太郎_123456789.pdf
各文字列のバイト数
test ・・・ 4バイト
太郎 ・・・ 6バイト
_ ・・・ 1バイト
123456789 ・・・ 9バイト
.pdf ・・・ 4バイト
合計 24バイト
まとめ
Linux上でファイルを作成する場合はお気をつけてください。
Discussion