问题标签 [x-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 投票
1 回答
891 浏览

macos - 如何在 mappstack 上安装 mod_xsendfile

最终更新:Bitnami 将在计划于 2013 年 4 月 8 日左右发布的下一个版本中将 mod_xsendfile 包含到 MAPP 堆栈中。


mod_xsendfile我已经尝试在我的 mappstack5.4.12-0 上编译和安装。我尝试了两种方法,但每次都失败了:

  • 方法一:使用apxs自动安装。问题 => 运行命令“apxs -cia mod_xsendfile.c”时,apxs 试图在我的 Mac 上安装 mod_xsendfile,而不是在 mappstack 上安装它并且失败,因为尝试在该保护区创建 .so 文件时权限被拒绝。

  • 方法二:用apxs编译,在Apache中手动安装。问题 => 在我完全拥有的文件夹中运行命令“apxs -c mod_xsendfile.c”时,它会生成 .slo 文件而不是 .so 文件。

如何将此 .slo 文件转换为 .so 文件?我在 google 中找不到任何与 .slo 文件相关的结果,也找不到关于我的 2 个问题的任何有用信息。

使用 .so 文件,我可以mod_xsendfile使用以下参考资料中的说明在 Apache 中手动安装:

我不能发布超过 2 个网址,但这里是每个网址的相关部分:

  • web-developpeur-php.com/blog/article/mod-xsendfile-forcer-le-telechargement-avec-apache-php
  • codeutopia.net/blog/2009/03/06/sending-files-better-apache-mod_xsendfile-and-php/
  • elivz.com/blog/single/mod_xsendfile/

apxs 的 Apache 手册: http ://httpd.apache.org/docs/2.2/programs/apxs.html

这是我第一次使用apxs,我对编译c代码不太了解

谢谢。

PS:我能够按照 stackoverflow 答案https://stackoverflow.com/a/9615149/2193168mod_xsendfile中的说明安装在 MAPPstack 上,但是在重新启动 Apache 时出现错误。

0 投票
1 回答
940 浏览

php - 使用 mod-xsendfile 下载 PHP 文件不会下载整个文件

我在从我们的网站提供下载时遇到问题。大文件不会完整下载。下载将在两者之间停止...示例此文件(大小 cca 172MB)不会以全尺寸下载(还有其他文件)。

我从 Kohana 框架中包含的完全基于 PHP 的下载脚本切换:

return download::force($filePath);

到 mod-xsendfile 解决方案。我正在阅读基于 PHP 的下载脚本和大文件可能存在的问题,而 mod-xsendfile 上的 cam 是正确的解决方案……看起来不像,我用这两种技术得到了相同的结果。我当前使用 mod-xsendfile 标头的下载实现如下:

我究竟做错了什么?

更新:

我使用这个 HTTP 嗅探器来检查响应头,如果它有助于解决这个问题,这就是结果。

0 投票
1 回答
408 浏览

php - X-SendFile - 检测是否设置了 XSendFilePath

我刚开始使用 XSendFile apache 模块来提供文件。除了我不知道什么时候下载完成之外,我想这还不错……

但是有一个问题,我发现如果 XSendFilePath 未在 apache 或 vhost conf 中设置,xsend 将返回 0 字节文件

所以我的问题是,我可以检测是否设置了 XSendFilePath 吗?

使用 PHP,我可以检测 xsend 模块是否已加载,但如果我不确定它是否能正常工作,这对我没有好处......

所以更一般地说,是否可以检测到特定的 apache/vhost 指令?

0 投票
0 回答
114 浏览

php - 能力检查后面的 mpeg 文件不会在 Moodle 中播放

我对moodle中的嵌入文件有疑问。这些文件不是公开可用的,而是使用 x-sendfile 提供的,如下所示:

它适用于 avi 中的文件,但对于带有 mpeg 的文件,播放器决定向服务器发出第二个请求,但功能检查失败。更糟糕的是,工作或不工作的文件在计算机和播放器之间有所不同。我有兴趣让它主要在 ie10 中工作。

似乎其他人之前已经发现了这个问题(“如果媒体文件来自保护课程文件的脚本,某些媒体播放器将不接受它”),但我还没有看到在所有情况下都可以使用的播放器。

我尝试过的事情:

  • update mdl_files set mimetype='video/x-ms-wm' where mimetype='video/mpeg';通过更改数据库 ( )/文件扩展名/extension=>mimetype 配置中的信息来强制 Moodle 发送其他 mimetype 。它适用于某些文件,但不适用于大多数文件。
  • 更改 moodle 播放器的配置以强制其使用 WMP 而不是 quicktime。它适用于少数文件,但不适用于大多数文件。

我宁愿避免的事情: - url 中的会话 - 运行脚本以定期将每个上传的文件转换为不同的视频格式

Flash 播放器插件可能会工作,但如果它可以播放网站上已经存在的文件,那就太好了。

0 投票
1 回答
3987 浏览

python - 带有 X-Sendfile 的 Flask 开发服务器

我有一个 Flask 应用程序,它将在生产环境中运行在 Apache 下。我有一些静态文件,但它们需要经过身份验证的访问。因此,使用 X-Sendfile 来加快身份验证后的文件传递似乎是合理的:

然后我在哪里生成响应:

它似乎在 Apache 下运行良好。问题是当我运行开发服务器时:

当我以这种方式运行它时use_x_sendfile = True,X-Sendfile 标头显示在实际响应中,并且一个空文件(0 字节)被传递给客户端。关闭 X-Sendfile(并强制浏览器丢弃缓存的文件)解决了这个问题,因此 Werkzeug 服务器 Flask 运行似乎没有处理 X-Sendfile 标头。有没有办法让开发服务器处理 X-Sendfile,或者我在开发过程中被迫关闭它?

0 投票
1 回答
1790 浏览

php - X-SendFile 在 centos 上不起作用

我在 6 美分上有以下安装。

在 httpd.conf 我添加了以下行:LoadModule xsendfile_module /usr/lib64/httpd/modules/mod_xsendfile.so

和 apache_get_modules(); 在加载的 mod 数组中显示 mod_xsendfile... 现在我有了 .htaccess 文件,其中包含

和 files.php 有

每件事似乎都是正确的。但它仍然没有显示任何文件。

0 投票
3 回答
16547 浏览

ruby-on-rails - 在 Ruby on Rails 中,在 send_file 方法之后从服务器中删除文件

我正在使用以下代码在 Rails 中发送文件。

在此我试图发送文件并在成功发送后从服务器中删除文件。但我面临的问题是,删除操作正在执行发送时执行,因此我在浏览器中看不到任何内容。

那么 Rails 有什么办法,一旦 send_file 操作完成,就从服务器中删除文件。

对此的任何帮助将不胜感激。

谢谢,
切坦

0 投票
0 回答
373 浏览

php - Apache Xsendfile 不适用于 RewriteEngine

我正在尝试在我的 Apache 服务器中实现 xSendFile。但是,我发现 RewriteEngine 和 xsendfile 存在冲突。

现在,每次我使用 xsendfile 时,它​​都会给我:

在此服务器上未找到请求的 URL /index.php。

有任何想法吗?

0 投票
1 回答
323 浏览

ruby-on-rails - 延迟作业完成后调用方法检查文件是否存在 -RAILS

我有一种方法可以调用延迟作业来创建 zip 文件并将它们存储在特定文件夹中。现在我知道当客户端单击下载 zip 按钮时,此请求将丢失,因为进程将被发送到后台作业.所以当 zip 生成时我不能使用 send_file/send_data .我应该检查文件是否生成然后发送它(使用一些重复的方法调用)还是有其他方法可以实现这一点???我是 ruby​​ 1.9 和 rails 2.3。

0 投票
1 回答
2742 浏览

ruby-on-rails - X-Sendfile、Rails 和 Nginx

我对 X-Sendfile、NGinx 和 Rails 的问题感到沮丧。我已经阅读了几个文档和教程,但我只是不明白这一点。

无论我尝试什么,我都会得到 404。这是 NGINX 的 X-Sendfile 部分。

X-Accel-Redirect 在我的 rails 应用程序中启用:

这是负责提供文件的控制器的代码:

结尾

我使用carrierwave作为存储引擎。也许有人只是看到我的错误,但即使经过几个小时的尝试,我也没有。

还有一件事,该请求甚至没有出现在 development.log 中(是的,我也为 dev 激活了 X-Accel)。

问候,亚历克斯