2012-03-21 5 views
0

私はこの質問の質問者と同様のことをしようとしています。コンテンツ範囲ヘッダーと再開可能なアップロード

Uploading big files over HTTP

私はライアンの提案WebDavの手法を実装したいのですが、サーバーのバックエンドの問題に実行しています。私は大きなファイルに対してHttp PUTやコマンドラインのカールを試みているが、アップロードを中断して後で再開したいと思っているが、部分的にアップロードされたファイルは、転送が壊れたときに常に削除される。私はどこかでApacheの設定が欠けていますか?私は明らかに、この機能をサポートしている任意のサーバーに必要な応答である206応答のためのテストを試してみました

curl -v -u test:test -C - -T 2gb.test http://my.server.net/webdav/

はここで私がテストしていcurlコマンドです。誰かが確認してもらえますか?私は、次のカール呼び出しから200の応答を受信して​​います:

curl -v --header "range: bytes=0-999" -X HEAD -u test:test http://my.server.net/webdav/

答えて

0

コンテンツレンジは、PUTのために動作しません。

ここで行うべきことは、 "append binary"のメディアタイプを定義し、それをHTTP PATCHで使用することです。

0

ジュリアンは私がWebDAVについて考えるよりもはるかに権限があるように見えます。しかし、私の経験では、PUTはサーバが実装している限り(Apache mod_davが実行する限り)Content-Rangeをサポートしています.WebDAV仕様は一方向または他の方法を示すようには見えません(http://asg.andrew.cmu。 edu/rfc/rfc2518.html#sec-8.7)、HTTP 1.1仕様ではPUT要求のコンテンツ範囲は必要ありませんが、(http://asg.andrew.cmu.edu/rfc/rfc2068.html #sec-9.6)。つまり、HTTP PATCHがそれを処理するより良い方法かもしれません。私は、テキスト以外のデータでPATCHを使用したことはありません。

mod_davコードを見ると、アップロードが失敗した場合に自動的にファイルをクリーンアップするように見えるので、リンク先の私の提案はうまくいかないでしょう。

一度に1つのチャンクをアップロードすることが可能です(ちょっとハッキリですが)。失敗したら、最後に成功したチャンクに続いてチャンクでアップロードを再開してください。

関連する問題