问题标签 [large-file-support]

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 回答
404 浏览

c - 如何解决有关大文件支持的兼容性问题?

使用 off_t 作为一个函数 (seek) 参数的库。库和应用程序的编译方式不同,一种关闭了大文件支持,另一种关闭了大文件支持。这种情况会导致奇怪的运行时错误,因为两者对 off_t 的解释不同。库如何在运行时检查应用程序的 off_t 大小?或者是否有另一种解决方案,以便至少用户得到一个有意义的错误?

编辑:该库(用 c 和 autoconf 编程)已经存在,并且一些第三方应用程序使用它。该库可以使用大文件支持进行编译(默认情况下通过 AC_SYS_LARGEFILE)。它是多平台的,不仅仅是linux。如何检测/防止已安装的应用程序会因 LFS 的变化而损坏?

0 投票
2 回答
4430 浏览

c++ - iostream 和大文件支持

我试图找到一个明确的答案,但不能,所以我希望有人可能知道。

我正在 Linux(32 位操作系统)上使用 GCC 4.x 开发 C++ 应用程序。此应用程序需要能够读取大小 > 2GB 的文件。

我真的很想使用 iostream 的东西与 FILE 指针,但我找不到大文件 #defines (_LARGEFILE_SOURCE, _LARGEFILE64_SOURCE, _FILE_OFFSET_BITS=64) 是否对 iostream 标头有任何影响。

我在 32 位系统上编译。任何指针都会有所帮助。

0 投票
1 回答
1551 浏览

django - 处理 django 上的大型上传,超过 nginx 上的最大大小

我们在 nginx 上有一个 django 应用程序,用户可以在其中上传媒体文件。媒体很大,例如 30 分钟的电视和广播节目,产生 100-300mb,我们的共享主机将上传限制为 30mb。

如何嵌入一个智能上传器,它将放置 20-30mb 的块而不是尝试上传大文件?我们不想破坏我们高度编辑的表单,所以如果有一种简单的方法可以插入诸如防弹小部件之类的工具,那么您就很棒了。

链接、片段、示例 - 高度赞赏,欢迎任何想法。提前发送。

0 投票
2 回答
5817 浏览

python - 用于合并排序文件的 Python 类,如何改进?

背景:

我正在清理大型(不能保存在内存中)制表符分隔的文件。当我清理输入文件时,我在内存中建立了一个列表;当它达到 1,000,000 个条目(大约 1GB 内存)时,我对其进行排序(使用下面的默认键)并将列表写入文件。此类用于将已排序的文件重新组合在一起。它适用于我迄今为止遇到的文件。到目前为止,我最大的案例是合并 66 个排序文件。

问题:

  1. 我的逻辑是否存在漏洞(它在哪里脆弱)?
  2. 我是否正确实现了合并排序算法?
  3. 有什么明显的改进可以做的吗?

示例数据:

这是其中一个文件中的一行的抽象:

'hash_of_SomeStringId\tSome String Id\t\t\twww.somelink.com\t\tOtherData\t\n'

外卖是我'SomeStringId'.lower().replace(' ', '')用作我的排序键。

原始代码:

编辑:实施布赖恩的建议我想出了以下解决方案:

第二次编辑:根据John Machin的建议更新了代码:

粗略测试

使用相同的输入文件(2.2 GB 数据):

  • SortedFileMerger 类耗时 51 分钟(3068.4 秒)
  • Brian的解决方案耗时 40 分钟(2408.5 秒)
  • 添加John Machin的建议后,解决方案代码耗时 36 分钟(2214.0 秒)
0 投票
4 回答
3837 浏览

ruby-on-rails - 回形针、大文件上传和 AWS

所以,我正在使用 Paperclip 和 AWS-S3,这很棒。而且效果很好。不过,只有一个问题:我需要上传非常大的文件。如超过 50 兆字节。因此,nginx 死了。那么显然 Paperclip 在去 S3 之前将东西存储到磁盘?

我发现这篇非常酷的文章,但它似乎也是先进入磁盘,然后在后台执行其他所有操作。

理想情况下,我可以在后台上传文件......我有少量使用 PHP 执行此操作的经验,但目前还没有使用 Rails。任何人都可以为我指明一个大致的方向吗?

0 投票
6 回答
1478 浏览

cygwin - 在 C + MinGW32 中使用 64 位地址进行文件操作

我正在尝试用 C 读取 24 GB XML 文件,但它不起作用。我在读入时使用 ftell() 打印出当前位置,但是一旦它达到足够大的数字,它就会回到一个小数字并重新开始,甚至从未通过文件获得 20%。我认为这是用于存储位置(长)的变量范围的问题,根据http://msdn.microsoft.com/en-us/library/s3f49ktz(VS .80).aspx,而我的文件大小为 25,000,000,000 字节。long long 应该可以工作,但是我将如何更改我的编译器(Cygwin / mingw32)使用的内容或让它拥有 fopen64?

0 投票
2 回答
11917 浏览

c - O_LARGEFILE 是否只需要写一个大文件?

O_LARGEFILE如果我只想写一个大文件(O_WRONLY)或附加到一个大文件( ),是否需要标志O_APPEND | O_WRONLY

从我在 CLucene-dev 邮件列表上读到的标题为“无法写入 >2gb 索引文件”的线程中,似乎O_LARGEFILE可能需要编写大文件,但该讨论的参与者正在使用O_RDWR, not O_WRONLY,所以我不确定。

0 投票
3 回答
7728 浏览

c - Darwin下如何开启大文件支持?

我有一个 C 应用程序,我正在尝试为 Mac OS X 10.6.4 编译:

gcc的如下:

Makefile的如下:

问题是我的应用程序调用fseeko64and fopen64,并使用该off64_t类型进行偏移。当我编译我的应用程序时,我收到以下警告和错误:

我的代码在 Linux 下构建没有错误。在 Darwin 下构建时,我可以对源代码进行哪些更改以添加大文件支持?

0 投票
1 回答
699 浏览

c++ - 有没有办法使用特征使 pos_type 和 off_type 成为 int64_t ?

我试图了解特征是什么,例如typedef typename traits_type::off_type off_typeGNU 实现中的表达式fstream

当我处理大于 2/4 GB 的文件时出现了这个问题。我发现使用适当的标志重新编译 STL 库通常可以解决大文件问题。

0 投票
2 回答
527 浏览

node.js - 在 node.js 中随机访问大文件(需要支持 64 位文件偏移)?

我正在考虑将我的一些跨平台脚本移植到 node.js,部分原因是为了学习 node.js,部分原因是我现在对 JavaScript 更加熟悉,部分原因是其他脚本语言对大文件的支持存在问题。

一些脚本语言似乎对大文件偏移有不完整的支持,这取决于它们是否在 32 位/64 位操作系统或处理器上运行,或者是否需要使用某些标志进行专门编译。

因此,无论如何我都想尝试使用 node.js,但是在谷歌搜索中,我在它对 64 位偏移量的大文件的支持(或者它的库/框架支持等)方面都没有找到太多的方法。

我意识到这在某种程度上至少取决于 JavaScript 的底层整数支持。如果我正确阅读了什么是 JavaScript 的 Max Int?Number 可以达到的最高 Integer 值是多少而不会丢失精度?似乎 JavaScript 在内部甚至对整数也使用浮点数,因此

最大精确整数值为 2 53

再一次,node.js 是为服务器设计的,服务器应该期望支持大文件。

node.js 是否支持 64 位文件偏移?


更新

尽管有_LARGEFILE_SOURCEand _FILE_OFFSET_BITSbuild 标志,现在我已经开始移植需要这个的项目,我发现它fs.read(files.d.fd, chunk, 0, 1023, 0x7fffffff, function (err, bytesRead, data)成功但0x80000000失败了EINVAL. 这是v0.6.11在 32 位 Windows 7 上运行的版本。

到目前为止,我不确定这是否仅是 .js 中的限制fs、node.js 中的错误,还是仅 Windows 版本中的问题。

是否打算在所有平台上的所有核心模块中的 node.js 中使用大于 31 位的文件偏移量?