1

私はImageResizerを使い始めたばかりで、完全に基本的な質問のように思われることに固執しています。

  1. HTTP経由で直接アクセスできないディレクトリに画像を配置するために使用するアップローダーがあります。(たとえば、画像をに置くだけで、/images/myimage.jpg誰でも画像を要求するだけでアクセスできますが、サムネイルや透かしなどでアクセスを制限したいのですが)。だから私はそれをに置きたいのですが、でそれ/offlimits/myimage.jpgを提供することができ/public/images/myimage.jpgます。
  2. offlimits1つのフォルダに大量のファイルを入れると、Windowsが不幸になるため、すべての画像を同じフォルダにダンプしたくありません。しかし、そのサブディレクトリ構造の詳細も公開したくないので、公開URLと実際の画像の場所の間のマッピングをどこに配置しますか?
  3. 最も一般的には、必ずしも画像の拡張機能は必要ないので、/public/image_id?width=100...このマップをに設定し/offlimits/sub1/sub2/sub3/image_id.jpgます。

誰かがこれを設定する方法についてアドバイスできますか?

4

1 に答える 1

3

ここSOでは3つの部分からなる質問が一般的に眉をひそめていますが、とにかく噛みます:)

  1. 認証に基づいて画像へのアクセスを許可する場合は、ASP.NETのURL認証機能を使用する必要があります。ImageResizerはURL認証ルールをサポートしています。ソースファイルを利用可能にしたくないだけで、それらを強制的にサイズ変更または透かし入れしたい場合は、このような任意のルールを実装する方法に関するドキュメントをお読みください
  2. を使用して、イメージパスを心ゆくまで書き換えることができます。これは、前述Config.Current.RewriteのPostRewriteイベントと同じように機能します。後で頭の中ですべてをまっすぐに保つ必要があることを覚えておいてください。
  3. 画像拡張機能は良いことです。それらと戦わないでください。これにより、サーバーは送信する適切なmimeタイプを特定し、誤ったブラウザーが関連するバグから回復するのを支援します。これらは、いくつかのプラットフォームでの問題を防ぎ、[名前を付けて保存]ダイアログを機能させます。処理ロジックはそれほど長く待機しないため、サーバーの効率も大幅に向上します。これは、IIS/ASP.NETモジュールシステムの設計のために特に関係があります。
于 2012-07-02T19:43:34.097 に答える