仕事でAWS S3を使うことがあり、windows上でS3とローカルのフォルダを同期させるようなライブラリが欲しかったのですが、いろいろ探してみてそれらしいライブラリが見当たらなかったので必要になったので作ってみました。
というか、同期ができるツールとしてAWS CLIというのがamazonから出ているのですがpythonで作られているためか日本語のファイルの同期とかがうまくできずカッとなって作りました。
Githubで公開していますので興味がある方はご自由にお使いください。
GitHub - simotin/AmazonS3Lib: .Net S3 Client Library For Sync
■使い方
使い方のサンプルとしてSampleプロジェクトのprogram.csをご参照ください。
不明点とかあればコメントしてもらえれば回答できる範囲で回答致します。
■仕様
同期と言ってもかなりざっくりと作っています。同期の仕様は以下の通りです。
1.S3上にあるファイルを全てローカルにダウンロード
2.ローカルにあるファイルを全てS3にアップロード
3.1、2で同じ名前のファイルがある場合はタイムスタンプの新しい方を優先
■QA
Q.
「いつファイルやフォルダを消すのか?」
A.
「同期処理ではファイルやフォルダの削除は行いません」
「ただし削除用のAPIは作っています。注意点としてS3上のフォルダを削除するときはフォルダ内の全てのファイルを削除しておく必要があるようです」
■補足
前提としてS3を利用するにあたっての設定が終わっていることが前提です。
S3はアクセスポリシーを適切に設定してあげないとセキュリティ上問題がでてくるので利用する前にその辺の設定とかはやっておくべきかと思います。
■できること・やりたい事
なんといっても、このライブラリをうまく活用すればオレオレDropboxができます。
DropboxやTortoiseSVNみたいにファイルやフォルダにアイコンオーバーレイをかけたいのですが、C#ではできなくて、VCのAPIを使わないといけないみたいです。この辺についても今後勉強して試してみたいです。