[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[webdav-jp:0039] OSX10.1.1 からのアクセスで問題



なか と申します。

さて、Redhat7.1(Kernel2.4.10)、Apache1.3.19-5(Redhatがビルドしたもの)、
mod_dav1.0.2-4(同)の環境で、OSX10.1.1からアクセスをかけると、マウント
はでき、コピー、新規保存はできるようなのですが、削除、リネームをしようと
すると、次のようなエラーが出ます。

一部のデータを読み込みまたは書き込みできないため、操作を完了できません。
(エラーコード -36)

この現象はファイル名が英数字でも日本語でも同じです。


なお、
macosx-jpのMLでも2人の方が私と同じような現象を報告されています。
(英語名でもファイル名の変更や削除ができない)

これについて、
冨田 アキラさん
http://homepage.mac.com/k_suka/
が下記のような重要な情報を提供して下さったので転載します。

------

私も文字コードであろう、と軽く考えていたのですが、実情は違う様です。

WebDAVはHTTP上位互換でいろんなメソッドがあります。
GET(取得)
PUT(書き込み)
MOVE(移動)
COPY(複写)
DELETE(削除)
他にもあるのですが、関係してくるのはこの辺ですね。
で、調べてみるとmod_davに対してMOVEのメソッドを実行しても
502 Bad Gatewayというエラーが返ってくるだけで何もしません。
その他はちゃんと動いてくれるようです。

御存じの通り、MacOSの削除は「ゴミ箱への移動」なので、
削除というオペレーションは502エラーで実行されません。
また、変名は「ソースとディスティネーションの名前部分が
違う移動」として実装されているので同じく実行されません。

では、なぜWindowsではちゃんと実行されるかといいますと、
Windowsの場合、MOVEがエラーだった場合、GETとPUTを使って
複製を作り、その後もとのファイルをDELETEで消す、という
作業をやっているので、見かけ上同一動作をしている、ようです。

そこでMacOSX上での対処方法ですが、手動で同じ事をしてしまう
しかなさそうな気がします。
つまり、dav上のファイル/フォルダをcommandキーを押しながら
別のドライブにあるフォルダに移動させる、という事になります。
これでメソッド的にはGET→DELETEのコンボでdav上からはファイルが
消えます。
その後、移動した物をゴミ箱に入れる…ということですね。

また、ターミナル上からはWebDAVに接続するとCD等の他のドライブと
同じ様に/Volumesの下にマウントされますので、コマンドオペレーション
も可能です。
ただ、mvは使えませんので、cpとrmで対処しなければなりませんけどね。

ということで、appleに意見書を出した方がいいのかもしれません。

-------

この現象については、やはり確認されているでしょうか?

よろしくお願いします。