問題タブ [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.
c - この互換性を解決する方法-ラージファイルサポートに関する問題?
1つの関数(seek)のパラメーターとしてoff_tを使用するライブラリ。ライブラリとアプリケーションのコンパイル方法は異なります。1つはラージファイルサポートがオフになっており、もう1つはラージファイルサポートがあります。どちらもoff_tの解釈が異なるため、この状況では奇妙なランタイムエラーが発生します。ライブラリは、実行時にアプリのoff_tのサイズをどのように確認できますか?または、少なくともユーザーが意味のあるエラーを受け取るように、別の解決策はありますか?
編集:ライブラリ(cでプログラムされ、autoconfを使用)はすでに存在し、一部のサードパーティアプリケーションがそれを使用しています。ライブラリは、ラージファイルサポートを使用してコンパイルできます(デフォルトではAC_SYS_LARGEFILEを介して)。Linuxだけでなく、マルチプラットフォームです。LFSの変更により、インストールされているアプリケーションが破損することをどのように検出/防止できますか?
django - nginxの最大サイズを超える、djangoでの大規模なアップロードの処理
ユーザーがメディアファイルをアップロードするnginxにdjangoアプリがあります。メディアは巨大で、30 分間のテレビやラジオ番組は 100 ~ 300 MB になり、共有ホスティングではアップロードが 30 MB に制限されます。
大きなファイルをアップロードしようとする代わりに、20 ~ 30 MB のチャンクを入れるスマート アップローダーを埋め込む方法は? 高度に編集されたフォームを破壊したくないので、防弾ウィジェットなどのツールを挿入する簡単な方法があれば、あなたは素晴らしいです.
リンク、スニペット、例 - 高く評価され、どんなアイデアも大歓迎です。事前にtx.
python - ソートされたファイルをマージする Python クラスですが、これをどのように改善できますか?
バックグラウンド:
大きな (メモリに保持できない) タブ区切りファイルをクリーニングしています。入力ファイルをクリーンアップすると、メモリ内にリストが作成されます。1,000,000 エントリ (メモリ内で約 1GB) に達したら、(以下のデフォルト キーを使用して) 並べ替え、リストをファイルに書き込みます。このクラスは、ソートされたファイルを元に戻すためのものです。これまでに遭遇したファイルで動作します。これまでのところ、私の最大のケースは、66 個のソートされたファイルをマージすることです。
質問:
- 私のロジックに穴がありますか (壊れやすい場所はどこですか)?
- マージソートアルゴリズムを正しく実装しましたか?
- 明らかな改善点はありますか?
サンプルデータ:
これは、次のファイルの 1 つの行を抽象化したものです。
'hash_of_SomeStringId\tSome String Id\t\t\twww.somelink.com\t\tOtherData\t\n'
要点は'SomeStringId'.lower().replace(' ', '')
、ソートキーとして使用することです。
元のコード:
編集:ブライアンからの提案を実装すると、次の解決策が思いつきました:
2 番目の編集: John Machinの提案に従ってコードを更新しました。
ラフテスト_
同じ入力ファイル (2.2 GB のデータ) を使用:
- SortedFileMerger クラスは 51 分 (3068.4 秒) かかりました
- Brianの解決には 40 分 (2408.5 秒) かかりました
- John Machinの提案を追加した後、ソリューション コードは 36 分 (2214.0 秒) かかりました
ruby-on-rails - ペーパークリップ、大きなファイルのアップロード、AWS
だから、私はペーパークリップとAWS-S3を使っています。これは素晴らしいです。そしてそれは素晴らしい働きをします。ただし、問題が1つだけあります。それは、非常に大きなファイルをアップロードする必要があるということです。50メガバイト以上のように。そして、nginxは死にます。それで、どうやらペーパークリップはS3に行く前に物事をディスクに保存しますか?
私はこの本当にクールな記事を見つけましたが、それは最初にディスクに行き、次にバックグラウンドで他のすべてを行うようです。
理想的には、バックグラウンドでファイルをアップロードできると思います... PHPでこれを行った経験は少しありますが、Railsではまだ何もありません。誰かが私を一般的な方向に向けることができますか?
cygwin - Doing file operations with 64-bit addresses in C + MinGW32
C で 24 GB の XML ファイルを読み込もうとしていますが、うまくいきません。読み込んだときに ftell() を使用して現在の位置を出力していますが、十分に大きな数値になると、小さな数値に戻って最初からやり直し、ファイル全体で 20% を取得することさえありません。これは、位置 (long) を格納するために使用される変数の範囲に問題があると思います。http://msdn.microsoft.com/en-us/library/s3f49ktz( VS .80).aspx、私のファイルのサイズは 25,000,000,000 バイトです。long long は機能するはずですが、コンパイラ ( Cygwin / mingw32 ) が使用するものを変更したり、fopen64 を使用するにはどうすればよいですか?
c - 大きなファイルを書き込むためだけに O_LARGEFILE が必要ですか?
大きなファイルの書き込み ( ) または大きなファイルへの追加( ) だけを行う場合、O_LARGEFILE
フラグは必要ですか?O_WRONLY
O_APPEND | O_WRONLY
私が読んだCLucene-dev メーリング リストの「 Cannot write >2gb index fileO_LARGEFILE
」というタイトルのスレッドから、大きなファイルを書き込む必要があるようですが、その議論の参加者はO_RDWR
ではなくを使用しているO_WRONLY
ため、よくわかりません。
c - Darwin で大きなファイルのサポートを有効にするには?
Mac OS X 10.6.4 用にコンパイルしようとしている C アプリケーションがあります。
私のgcc
は次のとおりです。
私のMakefile
は次のとおりです。
問題は、私のアプリケーションがfseeko64
andを呼び出し、オフセットfopen64
の型を使用することです。off64_t
アプリケーションをコンパイルすると、次の警告とエラーが表示されます。
私のコードは、Linux でエラーなくビルドされます。Darwin でビルドするときに大きなファイルのサポートを追加するには、ソース コードにどのような変更を加えることができますか?
c++ - 特性を使用してpos_typeとoff_typeをint64_tにする方法はありますか?
typedef typename traits_type::off_type off_type
たとえば、のGNU実装のような式など、特性が何であるかを理解しようとしていfstream
ます。
この質問は、2/4GBを超えるファイルを操作しているときに出てきました。STLライブラリを適切なフラグを使用して再コンパイルすると、通常、大きなファイルの問題が解決されることがわかりました。
node.js - node.js で大きなファイル (64 ビット ファイル オフセットのサポートが必要) へのランダム アクセス?
クロスプラットフォーム スクリプトの一部を node.js に移植することを考えています。これは、一部は node.js を学習するためであり、一部は最近 JavaScript に慣れているためであり、一部は他のスクリプト言語での大きなファイルのサポートに関する問題のためです。
一部のスクリプト言語は、32/64 ビット OS またはプロセッサで実行されているかどうか、または特定のフラグを使用して特別にコンパイルする必要があるかどうかなどに応じて、大きなファイル オフセットを不完全にサポートしているようです。
とにかくnode.jsを試してみたいのですが、グーグルでは、64ビットオフセットを持つ大きなファイルのサポート(またはライブラリ/フレームワークのサポートなど)について、どちらの方法もあまり見つけられません。
これは、少なくとも JavaScript の基本的な整数サポートにある程度依存することを認識しています。JavaScript の Max Int とは何ですか?を正しく読んだ場合 Number が精度を落とさずに到達できる最大の整数値は? JavaScriptは整数に対しても内部的に浮動小数点を使用しているようです。
最大の正確な積分値は 2 53です
次に、node.js はサーバー向けであり、サーバーは大きなファイルのサポートを期待する必要があります。
node.js は 64 ビットのファイル オフセットをサポートしていますか?
アップデート
_LARGEFILE_SOURCE
およびビルド フラグにもかかわらず、_FILE_OFFSET_BITS
これを必要とするプロジェクトの移植を開始したので、それはfs.read(files.d.fd, chunk, 0, 1023, 0x7fffffff, function (err, bytesRead, data)
成功するが で0x80000000
失敗することがわかりましたEINVAL
。これは、v0.6.11
32 ビット Windows 7 で動作するバージョンです。
今のところ、これが のみの制限なのかfs
、node.js のバグなのか、Windows ビルドのみの問題なのかはわかりません。
すべてのプラットフォームのすべてのコア モジュールの node.js で、31 ビットを超えるファイル オフセットが機能することを意図していますか?