Dataloaderでsalesforceの「ファイル」を一括アップロードする方法

SalesforceもLightningに変わってきて、ファイルも、以前の「ドキュメント」ではなく「ファイル」を使うことが多くなってきました。

このファイル、自分でアップロードして自分で確認するには特に問題ないのですが、自分があげたファイルを他の人に見てもらう場合には、「権限」を付与してあげる必要があります。

で、1つ2つならいいですが、ファイルを大量にアップする場合には、どうしたらいいでしょうか?

今回は、そのやり方をご紹介します。

Dataloaderを使って、ローカルPCにあるファイルを一括で、権限付きでアップロードする方法

「ファイル」のSFDCオブジェクトは「ContentVersion」です。

なので、基本的にはそのオブジェクトに対してDataloaderでローカルファイルをアップロードできます。

また、「ファイル」には「ライブラリ」といわれる、権限の管理とセットになった概念があります。

見た目上は「ファイル」配下に作成したフォルダのようで、フォルダ同様、その中に入れたファイルはそのライブラリに設定した権限を引き継ぎます。

そのため、アップロードファイル全部に適切な権限を付与した状態にするには、

  • ライブラリを作成
  • そのライブラリに権限を付与
  • そのライブラリに対してファイルをアップロード

という手順を踏むと良いです。


これを、Dataloaderで行うには、「ContentVersion オブジェクト」の項目にある「FirstPublishLocationId」にライブラリのオブジェクトIDを指定してあげます。

ライブラリのオブジェクトIDの調べ方

ライブラリは「ContentWorkspace」オブジェクトですので、SFDCの開発者コンソールから以下のようなSOQLを発行すると、IDが取得できます。(以前の記事に書いたWorkbenchを使うと便利です)

SELECT Id,Name,CreatedDate,Description FROM ContentWorkspace

取得したオブジェクトIdを「FirstPublishLocationId」にセットしたCSVファイルの用意

"TITLE","DESCRIPTION","VERSIONDATA","PATHONCLIENT","FirstPublishLocationId"
"AAAA","This is AAAA","D:\sample\AAAA.png","D:\sample\AAAA.png","058p00000002zzzXXX"

このように用意したCSVファイルをDataloaderで読み込んで、insertすれば、ファイルをアップロードできます。