skyzi000 / skyzibackup Goto Github PK
View Code? Open in Web Editor NEWファイル単位で圧縮と暗号化のできる、簡単操作の無料ファイルバックアップソフト
Home Page: https://skyzibackup.skyzi.jp/
License: MIT License
ファイル単位で圧縮と暗号化のできる、簡単操作の無料ファイルバックアップソフト
Home Page: https://skyzibackup.skyzi.jp/
License: MIT License
ローカル設定を作らなくてもバックアップペアごとに異なるパスワードを使えるようにする
出来ればやる
Semaphoreを使ったキャンセル処理が正常に動いてない
結果がログでしかわからないのは不便なので
失敗時の通知や、MainWindowを閉じた時の通知などもオプションで消せるようにする
#12 の続き
読み取り専用を上書きする設定にしていてもSystem属性を持つdesktop.iniなどでエラーを吐く
読み取り専用の上書きとは別に設定を設けるのが無難か、それともまとめるか
あると便利だろうけど、暗号化有効時はバックアップ先ファイルからサイズやSHA1を取得するのは難しいし一度データベースを消してやり直す方が良いかな
FileStreamのFileShareを指定していないのが問題かと思われる。
多分上書きもできない。
とりあえずプロパティで良さそう
マッチングする除外パターンを分けることで除外パターンのマッチング回数を減らすことができる。
ファイルバックアップ時にバックアップ先のディレクトリが存在しない場合、例外を出すことなくそのファイルをバックアップしないようにする必要がある。
なんで?
DPAPIの問題……?
Semaphoreで引っかかってキャンセルした場合に起こる
BackupControllerのDisposeでCTSをキャンセルしているのが問題
close #27
とりあえずWindowsのタスクスケジューラを使ってみる
現在はInfoレベル以上をファイルに出力しているが、ファイル数の多いディレクトリをバックアップするとログファイルが巨大になってしまう。
ただ、現状ログでしか結果の確認が基本出来ないので、 #10 の必要性が高いかもしれない。
バックアップ終了してからアプリケーション終了するまでちょっと時間を空ける……?
バックアップ失敗時などに通知する機能が必要
FATの場合などは2秒の誤差まで許容する必要がある
処理速度は落とさないようにする
グローバル設定とローカル設定をGUIから変更できるようにする
無視するのは簡単にできそうだが、リパースポイントをそのままバックアップ先に再現するのは骨が折れそう
というか、ジャンクションはともかくシンボリックリンクは作成するのに特権が必要だし相対パスでの指定もアリだしどうするのが良いか
バックアップ処理がMainWindowに依存しないようにする
ComparisonMethodとは別に追加する……?
データベースの情報だけではバックアップ先ファイルの更新は検知できないので、通常の比較処理を行う前に(除外パターンでのマッチング直後?)実ファイル同士で比較する必要があるかな
その場合バックアップ先ファイルへのアクセスが必須になってデータベースの利点が若干薄れそうなので微妙オプションかな……
更新や削除されるファイルをツリー形式で表示する
設定の確認のために必要?
僕はほぼ使わない機能なので優先度は低い
ディレクトリ名に<>
は使えないので、こんな感じで指定できるようにしたらどうだろうか
<LabelName>:\Directory\File.txt
Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.Idle;
こんな感じのやつを実装する。
手っ取り早いのは各フォルダの直下に[.ShellClassInfo]を持たせたdesktop.iniを作成することか……?
LocalizedResourceNameをGUIのローカル設定画面で設定できるようにしたら分かりやすいかもしれない。
InfoTipでバックアップ元フォルダとバックアップ先フォルダのパスを表示する……のは文字数制限(よくわからないけど試してみたところ70文字ちょい程度……?)に引っかかるか……いや、それぞれのパスの末尾から30字程度までにカットすることで文字数制限に引っかからずに分かりやすく表示するという目的は達せられるかも?
InfoTipはShift-JISで保存したら日本語や漢字でも表示できるみたい。
データベースの記述に無駄が多いのでできるだけ減らす(それよりJSONを使う方が良い……?)
データメンバーを一文字のaとかlとかの変数名にして、アクセスはpublicなプロパティから行うようにする。
ファイル名をAESで暗号化する場合、2度目以降のバックアップ時はファイルの関連付けをデータベースに頼ることになる?
(バックアップ元が同じファイル名であっても、暗号化する度に異なる文字列になるはずなので。データベースに存在しないファイルだけファイル名を暗号化するという感じにするか)
また、Salted__のprefixはファイル名には付けないようにする(prefixが無くてもソルトのバイト数は固定なので復号できるが、OpenSSLでファイル名を復号する場合は手動でprefixを付けることになるか)
名前付きMutexを使おうと思ったが、Semaphoreの方が良さそうだったのでこちらを使うことにする。
多重起動を禁止する必要は今のところあまり感じられない。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.