画像アップロードする際に、最近ではクライアントサイドであらかじめサイズを圧縮しておくのが主流である。
スマホカメラの高性能化に伴い、写真がどんどん高画質になっているためである。 10MB近いサイズのこともあったりする。
画像アップロードのフローからみる改善点
スマホ ①=> サーバーサイド ②=> ファイルストレージ
上記の①のアップロード部分はクライアント側のネットワーク速度に依存するため、通信が不安定な状態だといつまでたってもアップロード処理が終わらない。 (10MBの画像を上り1Mbsの速度でアップロードすると10秒以上かかる)
②はサーバーサイドなので通信による影響はある程度制御できる。 安定した状態であれば10MB程度のアップロードは1秒未満で完了するためそれほど問題にはならない。
画像サイズを1/10の1MBまで圧縮できれば、①の処理は1秒程度で完了する。
それゆえにクライアントサイドで画像を圧縮した上でアップロードすることがとても重要なのである。
(保険としてサーバーサイドでも圧縮処理を掛けておくべきであるのは言うまでもない)