web-dev-qa-db-ja.com

gvfsを使用したWebDAVのデバッグ

gvfs(gnome仮想ファイルシステム)は、いくつかの一般的なファイルシステムを再実装する必要性を感じました。 WebDAV共有にユーザーを誘導しようとしていますが、かなり不可解なエラーが発生しています。

私がやりたいのは、プロキシを使用するようにgvfsをセットアップすることです。これにより、Charlesを使用して何が起こっているかを確認できます。

どうすれば簡単にこれを行うことができますか?

エバート

1
Evert

Gvfs、またはプロキシをサポートしているかどうかはわかりません。ただし、プロキシを「強制」する簡単な方法は、Charlesをリバースプロキシとして設定し、代わりにwebdavクライアントをプロキシに接続させることです。

たとえば、Charlesが「プロキシ」ホストで実行され、webdavが「webdav」ホストにあるとします。ポート80でリバースプロキシを実行し、トラフィックをwebdav:80に転送するようにCharlesを設定します(「リバースプロキシ」はメニューで使用できます)。次に、クライアントを「webdav」に接続する代わりに、クライアントを http:// proxy / に接続させます。

WebDAVでリバースプロキシを実行する場合の注意点はほとんどありません。 Host:ヘッダー(Charlesがあなたに代わって行います)だけでなく、Destination:ヘッダーとIf:ヘッダーも書き直す必要があります。 Destination:はファイルをコピーまたは移動するときに使用され、If:はファイルがまだロックされていることを確認するために使用されます。幸い、Charlesは任意のヘッダーの書き換えをサポートしています... [ツール]> [書き換え]を探してください。書き換えに関する非常に一般的なルールをそこに置くことができます。あなたがする必要があるのは、それらのヘッダーの絶対URLのホスト部分を「プロキシ」から「webdav」に書き換えることです。 (単純なs/proxy/webdav /はテストに使用できます) webdavとリバースプロキシに関するJulian Reschkeによるすばらしい要約 興味がある場合は問題があります;-)

(gvfsにプロキシを単独で使用させることができれば、ヘッダーの書き換えの問題を回避できます...しかし、MacでWebdavFSにプロキシを使用させることができなかったので、これは役に立ちました)。

1