やりたいこと
ConoHaのサーバーにファイルマネージャーを用いてアップロードしたバイナリが正しく読み込めないという現象が起きました。

実際に起きたのはAI向けのモデルをファイルマネージャーでアップロードしてJavaScriptで読み込もうとしたところ失敗しました。(404などのエラーではなく構成が正しくないというエラーが起きました。そのためファイルが壊れているように見えます。)
対策
原因
実際にアップロード後に失敗したファイルは拡張子なしでした。
ConoHaのファイルマネージャーは拡張子なしのファイルをアップロードするとテキストファイル(アスキー)として扱います。
解決策
アップロード時にバイナリファイルだと認識させる必要があります。
そのためアップロードするファイルの拡張子をローカルで変更します。
変更する拡張子はバイナリだと認識されればなんでもいいんですが、*.binで動作することを確認しました。
拡張子を変更したら再度ファイルマネージャーでファイルをアップロードします。
アップロードしたファイルを右クリックして”リネーム”を選択し変更した拡張子を元に戻します。

読み込み確認を行い、正しく読み込めれば完了です。
アップロード後に”拡張子なし”→”*.bin”->”拡張子なし”とリネームしても問題は解決しないため注意
問題の確認方法
今回紹介した方法で解決する問題はバイナリでアップロードしないといけないファイルをアスキーでアップロードしていることが問題です。
アップロードしたファイルをダウンロードし、アップロードしたローカルファイルと比較することで正しくファイルがアップロードされているか確認できます。(ファイルが完全に同一である場合は別問題の可能性が高いです。異なっている場合はほかの原因の可能性もありますが、この記事で紹介した問題が発生している可能性があります。)
ファイルのファイルの同一性はWinMergeを使用するのが簡単です。(ハッシュでも確認可能です。)
結果
ConoHaのサーバーにファイルマネージャーを用いてアップロードしたバイナリが正しく読み込るようになりました。
コメント