問題タブ [sendfile]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
295 参照

c - 単純な sendfile プログラムですが、機能しません

ご覧のとおり、非常に単純なプログラムです。しかし、../ で hello.txt を見つけることができません。私の目的は、数百バイトになる可能性がある st_size の代わりに、10 などの数値を入力するとどうなるかを確認することです。

編集:

回答ありがとうございます。さて、私はあなたのアドバイスに従い、変更しました

また、fstat と sendfile の戻り値を確認しましたが、すべて問題ありません。

しかし、問題は同じです。

0 投票する
0 に答える
157 参照

c - sendfile 中に csum_partial_copy_from_user() が呼び出されたとき

ここに私がググったものがあります:

sendfile()のようwrite()に、記述子からソケットに直接のみです。これにより、バッファキャッシュからユーザー空間のバッファにデータをコピーする必要がなくなります。

現在の NIC はスキャッター ギャザーを実行できますI/O。つまり、カーネル バッファーからパケット ヘッダーを取得できますが、パケットの内容はバッファー キャッシュから取得できます (ユーザーからの csum 部分コピー)。

その結果はゼロ コピー TCP と呼ばれ、最終的な目標です。

私の質問は:

目的は何ですかcsum_partial_copy_from_user()、いつ呼び出されますか? までsendfileの処理をたどったのですが、dev_queue_xmit()どこで呼ばれているのかわかりませんでした。ありがとう

0 投票する
4 に答える
8239 参照

ruby-on-rails - Wicked_PDF ダウンロードのみ - Rails 3.1

私は現在 Rails 3.1 を実行しており、PDF 生成には最新バージョンの Wicked_pdf を使用しています。すべてが正しく設定されており、PDF は問題なく生成されます。

ただし、ユーザーがボタンをクリックしてpdfをダウンロードできるようにしたいと考えています。現時点では、クリックすると、ブラウザーは pdf をレンダリングし、ページに表示します。

私のコントローラー。

私はsend_fileを指摘されましたが、このシナリオでそれを使用する方法がまったくわかりません.

どんな助けでも大歓迎です。

0 投票する
4 に答える
7663 参照

ruby-on-rails - Rails 3のsend_file関数でファイルを読み取れません

私が使用しているコード:

ビュー ファイル内:

コントローラーで:

エラーが発生します:

PS: ダブル チェック、ファイルが存在します。それぞれのすべてのコントローラー内のすべてのファイル (画像、pdf、ビデオ) について、サーバー上で同じ問題が発生します。

0 投票する
1 に答える
1793 参照

ruby-on-rails - ダウンロードが完了したら、サーバーからファイルを削除します

ユーザーがダウンロードした後に削除する必要があるファイルサーバーがあります。でファイルを送信しますがsend_file、send_fileがすぐに返されるため、その行の後に単に置くことはできませんFile.delete(path)。そのため、ユーザーが完全なファイルを受け取る前でも、ファイルは削除されます。

これを修正するにはどうすればよいですか?これはよくある問題だと思いますが、まだ解決策が見つかりません。

これが私のコードです:

クライアント側でダウンロードが完了したら、サーバーからファイルを削除する方法を教えてもらえますか?

0 投票する
1 に答える
8742 参照

linux - sendfile() と splice() を理解する

sendfile()マシンAからマシンBにデータを取得するために、「ファイル」記述子から「ソケット」記述子にデータを送信するために使用できます。受信側で「ソケット」記述子からファイルにデータを取得することは可能ですか同様のゼロコピーセマンティクスを使用しますか? データのソースを「ページ/バッファ」キャッシュにする必要があるsendfile()ため、ここでは役に立たないと思います。sendfile()私の理解は正しいですか?splice()この状況で助けることができますか?

0 投票する
1 に答える
3980 参照

ruby - Ruby/Sinatraのsend_fileが機能しない

私はsend_fileSinatraアプリで使用しています:

公開されていないフォルダ/uploads/で、アプリディレクトリにあります。Chromeにアクセスしようとするとlocalhost:4567/update/dl/some_file、Firefoxのように404が返されます。ヘッダーが表示されると、404になります。しかし、Safariで試してみると、ファイルがダウンロードされます。だから私は私のコード(そしてSafariのコード)に何か問題があると思いますが、それはAppleに任せましょう:P。何が間違っている可能性がありますか?ありがとう!

0 投票する
3 に答える
10375 参照

python - XMLRPC を使用してクライアントからサーバーにファイルを送信しますか?

クライアントからサーバーにファイルを送信するための Python コードを作成したいと考えています。サーバーは、クライアントから送信されたファイルを保存する必要があります。しかし、私のコードには修正できないバグがいくつかあります。以下は私のサーバーコードです:

そしてクライアントコード:

しかし、コードを実行すると、クライアントは次のエラーを返します (これは Windows の場合です)。

いくつか質問があります:

  1. 上記のバグを修正するには?

  2. 私のコードでは、大きなファイルを転送する必要がある場合があります。私の方法は非常に単純なので、ビッグデータを移動するのに効率的であるとは思えません。大きなファイルを移動するためのより良い方法を誰か提案してもらえますか? (もちろん Python では XMLRPC を使う方が良いです)

0 投票する
1 に答える
2677 参照

ruby-on-rails - Content-Type のチェックによる RSpec send_file テスト

Content-Type が異なるファイルを送信する Rails コントローラーがあります。

Exel-File の例、コントローラ セット Content-Type ="application/excel"

RSpec テストは次のとおりです。

テストからの答えは次のとおりです。

0 投票する
1 に答える
2105 参照

jboss7.x - Jboss AS7、APR ネイティブ コネクタおよび sendfile

私は、torquebox (www.torquebox.org) の mod_xsendfile に似た機能のサポートを実装する試みに着手しました。Torquebox は基本的に JBoss AS 7 の上にある一連のコードであり、JBoss AS 7 で sendfile を動作させるのと同じような努力をしています。

ここでの主な問題は、おそらく JBoss に関する私の混乱です。しかし、あまりにも多くの時間を浪費してすべてのグーグル リソースを使い果たした後、AS 7 でこのことがどのように機能するかを実際に知っている人がそこにいると信じなければなりません。

私が理解しているように、sendfile は JBoss Web ネイティブ コネクタ (http://www.jboss.org/jbossweb/downloads/jboss-native-2-0-10)、つまり APR http コネクタを使用して JBoss でサポートされています。

これらを AS 7 にインストールするのに何時間も費やした後、他の人にとっては魅力的なように思えます (https://community.jboss.org/message/614790)。ローカルの JBoss ディレクトリを grep すると、これらのネイティブ コネクタはAS 7にバンドルされているようです。私の場合、必要なdllは次の場所に配置されています

%JBOSS_HOME%\modules\org\jboss\as\web\main\lib\win-x86_64

だから壮大な失敗、すでにそこにあるものをインストールしようとしています。また、standalone.xml 構成ファイルを調べると、このネイティブ コネクタが使用されていることがわかります

すべてのログ レベルをデバッグに切り替えてログを調べると、ログ メッセージが表示される

standalone/log/server.log.2012-02-10:324:23:12:17,964 INFO [org.apache.coyote.http11.Http11AprProtocol] (MSC サービス スレッド 1-5) http-127.0 で Coyote HTTP/1.1 を起動中.0.1-127.0.0.1-8080

Http11AprProtocol は、APR http コネクタが使用されていることを示します。ただし、Web 上の多くの投稿では、次の行も表示する必要があると言及されています。

org.apache.catalina.core.AprLifecycleListener init INFO: APR 機能: IPv6 [true]、sendfile [true]、受け入れフィルター [false]、random [true]。

ログ レベルに関係なく、AprLifecycleListener の行は表示されません。

これを確認すると、APR http コネクタが現在使用されているようです。

ドキュメントによると、次のサーブレットを動作させることができます

しかし、いいえ。org.apache.tomcat.sendfile.support 属性が null で、ファイルを送信するための http ヘッダーを設定し (support 属性を無視して)、残りの必要な sendfile 属性を設定しようとすると、ブラウザはファイルを受信して​​いると認識します。しかし、データは転送されず、接続はハングしたままです。

質問を締めくくるには、必要な APR ネイティブ コネクタが使用されているようです。デフォルトで sendfile を有効にする必要がありますが、サーバーは何をしようとしているのかわかりません。

どうやって進める?