Archive for the ‘JavaScript’ Category

遠距離バックアップ

金曜日, 4月 12th, 2019

遠距離バックアップ

長年の懸案であった、「遠距離バックアップ」ができました。
ここ何年かは、webの進化が速く、ブラウザとjavascriptだけで全てが解決すると考えてきました。
しかし、自動運転やバックグラウンドで運用ということになると、どうしてもブラウザだけでは解決できなくなります。
昨年から、VB.netを使用して、コンソールアプリ等の開発を進め、今回ようやく「遠距離バックアップ」の作成になりました。
webサーバーに接続した大容量ディスクやNAS(ネットワークHDD)のデータ、をwebに接続したPCやサーバーにバックアップするものです。
一般的なダウンロードと違うのは、差分でコピーをしますから、2回目からは、更新したフォルダやファイルだけが対象になります。
初回の全コピーは、回線速度にもよりますが、1ギガを3~4分で行います。一般的な実用データを500ギガとすると、約30時間で終わります。
ディスクからディスクへの普通のコピーの1.5倍位の速度になります。普通のコピーと違うのは、途中で止めても、次回は続きからになるところです。
2回目からは、更新分だけになりますから、一日の更新データが1ギガとすると、3~4分で終わることになります。
自動運転用に作ってありますから、夜間に動かせば、毎日のデータを日本中どこにでもバックアップを取ることができます。
災害列島の日本では、大切で膨大なデータを、遠隔地にバックアップすることが必要になると考えて作成しました。既に実用化を始めています。
レンタルサーバーに保管するだけですむような少量のデータには必要ないと思います。
しかし、数百ギガ~1テラとなると、レンタルサーバーやクラウドでは大変になると思います。
ただ、レンタルサーバーに自動で差分バックアップ(アップロード)するアプリも作成する予定です。

HTML5 – ファイル更新日時と新ZIP圧縮

水曜日, 9月 30th, 2015

・ファイルの日時
HTML5のファイル送信で、ファイルの更新日時を送り込むことができるようになりました。これまでもフォームから送られたファイルには、サイズと名前はありましたが、日時はありませんでした。HTML5でもその点は変わりませんが、送信時にJavaScriptでHTML5のfile-apiを使用して、ファイルの更新日時を取得できるようになりました。それを別のフォームID名で送り込めばいいわけです。これにより送られたファイルがサーバー上で日時を操作できるようになります。また同時にEXIFの撮影日時も取得するようにしました。これにより、画像に関しては撮影日時、更新日時、送信日時の順で有効なものをセットできるようになりました。

・HTML5でブラウザ処理が高度化
Ajaxによる画像の分割処理ができるようになりました。最近のデジカメ画像はものすごく大きいので、処理に大変時間がかかります。ともすると、Webではタイムアウトをおこします。そのためAjaxによる分割処理が必要なのですが、フォームの入力データが沢山あると、javascriptで一つづつ移すのは大変で、間違いのもととなります。
しかしIE11やChromeなどHTML5に完全対応したブラウザではfailesを含むformが一括扱えるようになりました。これにより、複雑で大量のフォームもAjaxで丸ごと送り出してやることができ、今回の分割処理を作ることができました。Googleのおかげで、MSも重い腰を上げ、ブラウザ処理が高度化しているといえます。FlashやオラクルJavaのような専用アプリの機能をどんどんカバーし始めています。

・ZIP圧縮の作り直し
ファイルの日時をサーバーで扱えるようになりましたが、それをそのままダウンロードすると日時は現在時刻になっていまします。FFFTPを使用すればそのまま書き込まれるようです。ブラウザで行うには、ZIP圧縮なら日時は変わらないだろうと考えていましたが、今までのプログラム(書庫を作りそこにファイルを追加する方法)では圧縮時刻になってしまうことが分かりました。ZIP圧縮は何もしなくても、ファイル情報がそのまま生きると思っていましたが、そうではなく、エントリーというものにファイル情報を設定しなおして、その中にデータを圧縮書き込みするようです。
今回、少し面倒ですがエントリーを作成して、その日時にファイル更新日時を設定してから、ファイルストリームを書き込む方法でプログラムを作り直しました。ついでにフォルダごと圧縮するfirstzipという方法(ファイル更新日時が生きる)も作り、「新ZIP圧縮」が揃いました。これでWEBサーバーに送り込まれたファイルの更新日時は各種処理の後、生かしたまま別のPCでダウンロードし、利用できます。