ゲストユーザーによるファイルアップロードの処理

簡単なクリーンアップ手順で、意図しない ContentDocumentLink (CDL) の生成を修正する方法をご紹介します。

現在、当社のアプリでファイル保護が有効になっている場合において、ゲストユーザーがアップロードしたファイルの処理に影響を与える Salesforce プラットフォームの既知の問題が発生しています。

発生している現象:
ゲストユーザーがファイルをアップロードした際、Salesforce プラットフォームの不具合により、不必要な ContentDocumentLink(CDL)が追加作成される場合があります。

  • Salesforceはこの問題を認めています。
  • 恒久的な修正はWinter ’26で提供される見込みです。
  • それまでは、手動での対応が必要となります。

必要な対応手順

組織内に意図しない CDL が存在しないか確認し、削除してください。以下のいずれかの方法(または両方)をご利用いただけます。

1. Data Loader を使用した CDL の特定と削除

  • Data Loader で以下のクエリを実行します:
SELECT Id, Visibility, LinkedEntityId, ContentDocumentId, ShareType
FROM ContentDocumentLink
WHERE LinkedEntityId IN (SELECT Id FROM User WHERE UserType = 'Guest')
  • 実行結果を確認します。
  • 検出されたすべてのレコードを削除し、ゲストユーザーのアクセス権を取り除きます。

2. 開発者コンソールを使用した一括削除

10,000 件ずつのバッチ単位でクリーンアップを行いたい場合は、以下のスクリプトを使用します:

delete as system [
    SELECT Id, Visibility, LinkedEntityId, ContentDocumentId, ShareType
    FROM ContentDocumentLink
    WHERE LinkedEntityId IN (SELECT Id FROM User WHERE UserType = 'Guest')
    LIMIT 10000
];

  • 開発者コンソールで上記スクリプトを実行します。
  • 意図しない CDL が検出されなくなるまで、実行を繰り返します。

必要な権限

  • 以下の条件を満たすユーザーアカウントを使用してください:
    • すべてのファイルを表示 または すべてのファイルを検索
    …影響を受けるすべてのレコードを確認できるようにするためです。


重要: 本番環境に変更を適用する前に、必ず最初に Sandbox 環境でプロセスを検証・確認してください。