问题标签 [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 我的目标是看看如果我输入一个任何数字会发生什么,比如 10,而不是可能是数百字节的 st_size。

编辑:

感谢您的回答。好吧,我听从了你的建议并改变了

另外,我检查了 fstat 和 sendfile 的返回值,一切正常。

但问题还是一样。

0 投票
0 回答
157 浏览

c - 在发送文件期间调用 csum_partial_copy_from_user() 时

这是我用谷歌搜索的东西:

sendfile()就像write(),仅直接从描述符到套接字。这消除了将数据从缓冲区缓存复制到用户空间中的缓冲区。

当前的 NIC 可以进行 scatter-gather 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 并使用最新版本的 Wicked_pdf 生成 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,但我不能只File.delete(path)在该行之后放一个,因为 send_file 会立即返回,所以即使在用户收到完整文件之前,文件也会被删除。

我该如何解决?我认为这是一个常见问题,但尚未找到解决方案。

下面是我的代码:

任何人都可以建议我,一旦在客户端完成下载,如何从服务器中删除文件?

0 投票
1 回答
8742 浏览

linux - 了解 sendfile() 和 splice()

sendfile()可用于将数据从“文件”描述符传输到“套接字”描述符,以便从机器A到机器B获取数据。是否可以在接收端从“套接字”描述符获取数据到文件具有类似的零拷贝语义?我认为sendfile()这里没有帮助,因为sendfile()需要数据源是“页面/缓冲区”缓存。我的理解正确吗?splice()在这种情况下可以提供帮助吗?

0 投票
1 回答
3980 浏览

ruby - Ruby/Sinatra send_file 不工作

send_file在 Sinatra 应用程序上使用:

它不是公开的文件夹/uploads/,它在应用程序目录上。当我尝试localhost:4567/update/dl/some_file在 Chrome 中访问时,它会返回一个 404,就像使用 Firefox 一样,当看到标题时,它是一个 404。但是如果我尝试使用 Safari,它会下载该文件。所以我猜我的代码(和 Safari 的,但让我们把它留给 Apple :P)有问题。有什么问题?谢谢!

0 投票
3 回答
10375 浏览

python - 使用 XMLRPC 将文件从客户端发送到服务器?

我想编写 Python 代码将文件从客户端发送到服务器。服务器需要保存客户端发送的文件。但是我的代码有一些我无法修复的错误。下面是我的服务器代码:

和客户端代码:

但是然后我运行我的代码,客户端返回以下错误(这是在 Windows 上):

我有一些疑问:

  1. 如何修复上述错误?

  2. 我的代码有时需要传输一些大文件。由于我的方法非常简单,我怀疑它对于移动大数据是否有效。有人可以建议一种更好的方法来移动大文件吗?(当然在 Python 上使用 XMLRPC 更好)

0 投票
1 回答
2677 浏览

ruby-on-rails - RSpec send_file 测试并检查 Content-Type

我有一个 Rails 控制器,它发送具有不同 Content-Type 的文件

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 之上的一堆代码,这让我的努力相当于让 sendfile 在 JBoss AS 7 上工作。

这里的主要问题可能是我对 JBoss 的困惑,但是在浪费了太多时间用尽我所有的谷歌搜索资源之后,我不得不相信有人真正知道这个东西在 AS 7 中是如何工作的。

据我了解,JBoss 通过使用 JBoss Web 本地连接器 (http://www.jboss.org/jbossweb/downloads/jboss-native-2-0-10) 支持 sendfile,即 APR http 连接器。

在花了几个小时未能在 AS 7 上安装这些之后,这似乎对其他人来说是一种魅力(https://community.jboss.org/message/614790),grep'ing 我的本地 JBoss 目录告诉我,这些本机连接器是似乎与 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 连接器。但是,网络上的许多帖子都提到还应显示以下行:

org.apache.catalina.core.AprLifecycleListener init INFO:APR 功能:IPv6 [true],sendfile [true],接受过滤器 [false],随机 [true]。

无论日志记录级别如何, AprLifecycleListener 行都不会显示。

当我查看此内容时,似乎现在正在使用 APR http 连接器。

根据文档,我可以让以下 servlet 工作

但不是。org.apache.tomcat.sendfile.support 属性为空,如果尝试设置用于发送文件的 http 标头(忽略 support 属性)并设置其余所需的 sendfile 属性,我的浏览器会认为它正在接收文件,但没有数据传输......并且连接处于挂起状态。

总结这个问题,似乎所需的 APR 本机连接器正在使用中,默认情况下应该启用 sendfile,但服务器不知道我试图让它做什么。

如何进行?