sql >> データベース >  >> RDS >> PostgreSQL

拡張子やファイルサイズを確認せずに、Linux PCからdjangoコードを介してテキストファイルを認識する方法は?

    ファイル拡張子に関係なく、アップロードのMIMEタイプを検出したい場合があります。これは、多くの場合、ファイルヘッダーを読み取って、ファイルの本質を示す「マジックナンバー」またはその他のビットパターンを検出することによって行われます。多くの場合、テキストファイルはエッジケースであり、ヘッダーは検出されず、最初のxバイトは印刷可能なASCIIまたはUnicodeです。

    それは少しうさぎの穴ですが、それを行うPythonライブラリがいくつかあります。例: https://github.com/ahupp/python-magic ファイルの内容ごとにmimeタイプを推測するだけで、ニーズに合わせて機能します。次に、ファイルの内容を、受け入れたいタイプと照合します。

    ニーズに固有の関連するサンプルコードのセットは、次の場所にあります: https://stackoverflow.com / a / 28306825/7341881

    編集:Eddieのソリューションは機能的に同等です。 python-magicは、Linuxのネイティブの「file」コマンドが利用するlibmagicをラップします。サブプロセスルートを使用する場合は、ユーザー入力(ユーザーが指定したファイル名など)を不適切にサニタイズしてセキュリティの脆弱性を作成しないように特に注意してください。これにより、サーバーのランタイム環境への任意のアクセスを許可する攻撃が発生する可能性があります。



    1. RailsPostgres-Jsonb列クエリ

    2. SQLServerで自動インクリメント主キーを定義する方法

    3. MySQLで今日からレコードを取得する方法

    4. 主キーを無視してPostgreSQLで重複行を見つける7つの方法