ファイルのダウンロードのカスタマイズ
ダウンロード前にカスタマイズコードが実行され、ダウンロードを続行できるかどうかが決定されます。
Sfc 名前空間には、ダウンロードされる前の Salesforce Files の動作をカスタマイズする Apex オブジェクトが含まれています。ContentDownloadHandlerFactory は、ファイルのダウンロードをカスタマイズするインターフェースを提供します。ContentDownloadHandler クラスは、ダウンロードが許可されるか、許可されない場合はどうするかに関する値を定義します。ContentDownloadContext 列挙は、ダウンロードが行われるコンテキストです。
Salesforce Classic の [コンテンツ] タブから、Apex を使用して複数ファイルのダウンロードをカスタマイズできます。Apex 関数パラメーター List<ID> は、ContentVersion ID のリストを処理します。
カスタマイズは、コンテンツパックとコンテンツ配信にも適用できます。List<ID> は、ContentPack のバージョン ID のリストです。複数ファイルまたは ContentPack ダウンロードで isDownloadAllowed = false を設定すると、ダウンロード全体が失敗します。redirectUrl で URL パラメーターを使用して、問題のあるファイルのリストをエラーページに渡すことができます。
例
- ユーザープロファイル、使用されているデバイス、またはファイルの種類とサイズに基づいて、ファイルをダウンロードできないようにする。
- IRM 制御を適用し、ファイルがダウンロードされた回数などの情報を追跡する。
- ダウンロード前に不審なファイルにフラグを設定し、ウイルス対策スキャンにリダイレクトする。
フローの実行
UI、Connect API、または ContentVersion.VersionData を取得する sObject コールのいずれかからダウンロードがトリガーされると、Sfc.ContentDownloadHandlerFactory の実装が検索されます。実装が見つからない場合、ダウンロードは続行されます。実装が見つかった場合、ユーザーは ContentDownloadHandler#redirectUrl プロパティで定義された URL にリダイレクトされます。複数の実装が見つかった場合、(名前順に) カスケード処理され、ダウンロードが許可されない最初の実装が考慮されます。