0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Salesforce ファイルのパブリック URL の生成

Posted at

Salesforce では、Content Delivery オブジェクトを使用してこれを非常に効果的に処理できます。API 名: ContentDistribution

ファイルを公開するには、それぞれの ContentVersion ID へのリンクを含む ContentDistribution オブジェクトにレコードを作成するだけです。

ContentDistribution タイプのレコードを作成すると、自動的に入力されるフィールドが 2 つあります。DistributionPublicUrl と ContentDownloadUrl。

これらのフィールドには両方とも、ファイルをパブリック リソースとして公開するための URL が含まれています。何が違うのかと思ったら…

DistributionPublicUrl には、コンテナ内でプレビューできる共有ファイルの URL が含まれています。そしてそれは次のようになります:

image.png

この URL を使用すると、ファイルをプレビューしてダウンロードできます。ただし、これを img タグで使用してイメージ タイプのファイルをプレビューする場合は機能しません。

では、どうやってそれを機能させるのでしょうか?
ContentDownloadUrl フィールドに対応します。

ContentDownloadUrl には、ファイルを直接ダウンロードできる共有ファイルの URL が含まれています。そして、この URL を img タグ内でソース (src) として使用して、ファイルを表示することができます。

さらにすごいのは、ContentDistribution オブジェクトが、ViewCount、FirstViewDate、LastViewDate など、他の便利なものも追跡していることです。共有ファイルをパスワードで保護することもできます。

また、ファイルが公開されているさまざまな場所に基づいて統計を追跡したい場合は、同じファイルに対して複数の ContentDistribution レコードを作成します。

このオブジェクトを使って実行できることは他にもたくさんあります。ここを確認してください。

ContentDistribution オブジェクト レコードを作成するにはどうすればよいですか?

これを行うには、ファイルページ、Apex、またはフローの「パブリックリンク」クイックアクションを使用できます。

パブリック リンクの使用 クイック アクション:

image.png

リンクが生成されると、バックグラウンドで ContentDistribution オブジェクト レコードが作成されます。

注: 生成されるリンクは DistributionPublicUrl です 。したがって、「ソース」URL として使用したい場合は、ContentDownloadUrl を個別にクエリする必要があります。

Apex の使用:

/* Getting ContentVersion file using ContentDocument Id */
ContentVersion file = [SELECT Id, Title FROM ContentVersion WHERE ContentDocumentId = '<Content Document ID>'].Id;

/* Creating ContentDistribution record */
insert new ContentDistribution(
   Name = file.Title,
   ContentVersionId = file.Id,
   PreferencesAllowViewInBrowser= true

);

フローの使用:

image.png

補足: ContentAsset(Asset files) を使用してファイルをパブリック リソースとして公開することもできますが、これはこのアプローチよりも少し複雑です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?