現在、私は現在、HTTPファイルのアップロード(外部APIにいくつかのファイルをアップロードするためにHttpWebRequest
を使用するというコンテキストで)を研究していますが、一般には数十個のダッシュが境界として使用されています。ブラウザは通常、ランダムに選択された16進数をダッシュに追加するように見えます。HTTPファイルのアップロードの境界線の選択
これは、私が議定書の欠陥を言うのを敢えて言えば、あまりにも控えめだと思われます。私の特定の用途には、私が使用する境界線を非常によく含むデータが含まれているので(私が選んだものであっても、データは一種のダンプです)、アップロードするファイルが破損しないことを100%保証する必要があります。実際の衝突の可能性が10億分の1であっても、無作為に数字を選ぶことは、私には受け入れられません。ターゲットスクリプトが何らかのエラーを検出した場合、ランダムに選択された別の境界で再試行することは、私が好きなことではありません。
私の選択した境界が存在しないかどうかを調べるために、ファイル全体(多くの場合、数メガバイト)をスキャンするのを避ける唯一の方法はありますか?私はアップロードで多くの異なるリクエストを実行する必要があるので、I/Oペナルティを避けるために、ファイル全体をスキャンしないようにしたいと考えています。
また、境界がフォーマルよりも少し大きくなるように、いくつかの種類のサイズパラメータがありますか?
私には何が欠けていますか?リモートAPIの変更はオプションではないため、Base64でのエンコードやエスケープ文字の追加はできません。
私は常識を持っていると言うか、最初はこの境界力学に疑問を呈していません。 ;)明らかに、ファイル化された境界は、それ自体はかなり無意味な事です。 – Stigma
OPが言っているように、あなたはこれについて心配する必要はありません。たとえば、ファイルを読み込んでMD5ハッシュを生成し、それを境界として使用することができます。また、http://ferozedaud.blogspot.com/2010/03/multipart-form-upload-helper.htmlを参照してください。これは、WebClientを使用してマルチパートアップロードを行う方法を示しています。アップロードストリームのフォーマットに関する詳細の大部分はあなたのために処理されます。 – feroze
@feroze - 境界としてMD5ハッシュを使用するメリットはありません...データのハッシュであるという理由だけでは、データ(OPのポイント)には発生しないということではありません。 – userx