PR

CarotDAV + Windows Live SkyDrive / Gladinet Cloud Desktop + Windows Live SkyDrive

CarotDAV Ver. 1.6.11 + Windows Live SkyDrive を試用した。

CarotDAVはWebDAVクライアントで、SkyDriveへの対応はあくまでもおまけ扱いという位置づけらしい。WebDAVのフリークライアントソフトウェアとして探していたので問題はないのだけど、SkyDriveにも対応しているなら使ってみよう。WebDAVの準備には未だ時間がかかりそうだし、少し前にGladinet Cloud Desktopも試用したのでその比較もあわせてメモしておく。

スポンサードリンク

◆ライセンスとか

CarotDAVはフリーウェアで、商用利用も可能。

Gladinet Cloud Desktopもフリーソフトウェアだが、フリーミアムな作り。

◆マウントとか

CarotDAVは1ペイン構成のシンプルな作り。ドライブとしてマウントしない。

Gladinet Cloud Desktopはネットワークドライブとしてマウントでき、再起動時にもその接続は維持される。一つのドライブレターを消費し、その中にオンラインストレージが複数存在する。例えば割り当てをYドライブとしたなら、その中のフォルダとしてSkyDriveが存在する。

◆通信とか

CarotDAVは日本で開発されているが英語のUI。SkyDriveの制限としてアップロードできても削除できないファイルなどがある。自動分割して送信する機能を備えている。アップロードは1ファイルづつ逐次送信する。送信中にアップロードしたいファイルをさらにドラッグアンドドロップすると、キューに入れてくれるようだ。ソフトウェアは必要な時に起動すれば良い。

Gladinet Cloud Desktopは設定によって変更できるが、デフォルトでは1ファイルにつき5つのスレッド処理を行う。これを1セットとして複数の通信を同時に行うことができる。自動分割して送信する機能を備えている。CarotDAVが削除できないとしているファイルに付いても削除可能。長時間の通信でハングアップすることはなかったが、パソコン全体が重くなるように感じた。ソフトウェアは常駐する。

◆CarotDAV + Windows Live SkyDrive の問題点

あくまでおまけとしてつけてくれている機能に文句をたれるのは申し訳ないのだけど、いくつか。

◇まず、プロキシ設定はデフォルトで通信できる。が、使わない設定にしたほうが通信が早かった。気のせいかもしれないけど。

◇次に、容量の大きなファイルをアップロードすると、エラーが出る。これが問題。

Rei.Fs.SimpleWebException: リモート サーバーがエラーを返しました: (500) 内部サーバー エラーです
   場所 Rei.Fs.Webdav.WebdavFs.GetResponse(HttpWebRequest request, Boolean notreqstream)
   場所 Rei.Fs.Webdav.WebdavFs.RequestStreamClose(CloseNotifyWriteStream stream)
   場所 Rei.Fs.CloseNotifyWriteStream.Close()
   場所 System.IO.Stream.Dispose()
   場所 CarotDAV.AsyncCopy.Worker_Upload_UploadFile(DavCopyTask task)

なんとなく20M超えたあたりでエラーが出る。SkyDrive側の制限は50Mだったと思うのだけど。もし、ファイルサイズでエラーが出るなら同じ位置でエラーが出るはずだけど、ちょっと違う。通信時間が長いからかと思って、通信タイムアウトに関する設定を変更しようと思ったけど止めた。その前に試すことがある。手動ファイル分割。

ファイル分割ソフトを使って、試しに20Mで切って、それを3つ送ってみたところ、エラーを吐かなくなった。ということはたぶん分割プロセスでなにか問題が起きたんだろうな。

◇もう一つ。ダウンロードの問題。

CarotDAVのファイルリストから対象ファイルをデスクトップにドラッグするとダウンロードできる。ところが、以下のエラーが出た。

Rei.Fs.SimpleWebException: Timeout
   場所 Rei.Fs.Webdav.WebdavFs.GetResponse(HttpWebRequest request, Boolean notreqstream)
   場所 Rei.Fs.Webdav.WebdavFs.OpenRead(Uri target, Int64 start, Int64 length)
   場所 Rei.Fs.SkyDrive.SkDriveFs.OpenRead(Uri target, Int64 start, Int64 length)
   場所 CarotDAV.OleStream.IStreamRead(Byte[] pv, Int32 cb, IntPtr pcbRead)

試しに、ファイルリストを右クリックし、Downloadをクリック。すると、ダウンロード先を選択するダイアログが表示されるのでデスクトップを選択。この場合、上記エラーは出ず、正常にダウンロードできた。

◇さらにもう一つ。アップロードの問題。

 アップロードしていると、1ファイルが完了した際に何の問題も無くスムーズに次のファイルに行くこともあるが、時間がかかることもある。その時に以下のメッセージが表示される。

Rei.Fs.SimpleWebException: Timeout
   場所 Rei.Fs.Webdav.WebdavFs.GetResponse(HttpWebRequest request, Boolean notreqstream)
   場所 Rei.Fs.Webdav.WebdavFs.RequestStreamClose(CloseNotifyWriteStream stream)
   場所 Rei.Fs.CloseNotifyWriteStream.Close()
   場所 System.IO.Stream.Dispose()
   場所 CarotDAV.AsyncCopy.Worker_Upload_UploadFile(DavCopyTask task)

 恐らくファイルリストの更新かなにかしているのだろう。タイムアウトのデフォルト30を60にしたところ、このエラーは減った。(完全にはなくならなかった)あれ?これは500エラーのときのメッセージと似てるな。

リトライしてうまく行く場合もあるし、リトライすると上書きするか聞かれることがある。上書きの質問が出たときは、アップロードが成功しているらしい(のでスキップしてるけどどうなんだろ?)。やっぱりリスト更新の際の通信の問題かな??とはいえ、サーバー側で受け取ったファイルの処理があって、返答が遅れているからCarotDAV側で切断しているのかもしれないけど。

// ドライブとしてマウントできるようになってくれないかな…。右クリック-送信とかでもいい。
// 英語のままでもいいけど言語ファイル読んでくれないかな。

コメント