いくつか課題は残ったものの,これで譜類添付機能の基礎が出来た。輪郭選り手の領当てもほぼ完成形と言っていいだろう。本当努を通して,関連仕様検討や,中途半端だった libxtd の譜類操作関連交度の整備なども大きく進んだ。
用合いとしては,録入り中の描写選り手左下に譜類添付ボタンを置き,譜類選択と同時に上信を開始,完了したら埋め込み記法で +[拡張子]
を追記,下見を開く(開いている場合は更新する)という形になった。すでに同拡張子の添付譜類が存在する場合は上書きする。予定通り,描写内の参照を消して描き出し・描き直し,または輪郭削除で削除されるようにした。
当初,譜類選択後に専用の下見機能付き小窓を開き,確認してから送信,という用合いを考えていたが,素早く描き出したい場合に煩雑になり,交度の複雑化に見合わない可能性があるため見送った。「送信中...」,「+[拡張子]
を追記しました。」,「.[拡張子]
で保存しました。」(上書きの場合)の3種類のメッセージを @msg
で表示し,下見に関しては既存の下見機能を利用すれば十分なことに気付いた。描き出し前には上信せずスクリプトで保持することも検討したが,これもページ遷移などへの対応も考えると無駄な複雑化を招く可能性があるため見送った。
対応形式はとりあえず JPEG,PNG,GIF,WebP のみ。WebP 以外の場合は長辺が1920px以下の WebP に変換する。WebP の上信に関しては,ImageMagick の未対応パッケージがまだ多いことなどから,1MiB のサイズ上限のみで対応することにした。その他譜類のサイズ上限は原則として5MiB。サイズ上限以外は基本的に kn upl
の仕様に合わせたが,cwebp が ICC プロファイルも捨ててしまう問題に気付いて kn upl
ともども -metadata icc
を加えた。
埋め込み記法では,拡張子のみ,知番と拡張子の組み合わせに加えて,輪符と拡張子の組み合わせにも対応した。
下見機能を利用するために添付譜類の舞覧隠し戦略も見直した。結局,譜類の更新時印から隠し破りを付与出来るようにし,隠し破りの有無で Cache-Control
の public
と no-cache
を切り替えられるようにした(5歩。これまでは一律 no-cache
だった)。Dex が実譜類に依存するのは水平拡大を考えるとどうかと思ったが,そのうち KNEST 隠し化すればいいと判断した。
最後の最後で,領下手定め環境で問題なかった新規描出フォームの添付譜類が本番環境では 404 Not Found
になるという問題にはまったが,これは systemd の PrivateTmp
による問題であることが分かり,一時的に無効化してから問題無いように修正し,元に戻した。新規描出フォームでは無駄に永続譜類を残さないように /tmp/
を利用していたことが原因だった。最終的に,これが大して意味を持たない設計になったので再描出フォームと同じ自我台録を利用することにした。