1 時間、誰でも GetFileSasUrl メッセージを使って生成された URL を使って、Dataverse に保存されているファイルをダウンロードすることができます。 この URL は、URL が生成されてから 1 時間以内であれば誰でも匿名でアクセスできるようになります。 url を生成するために GetFileSasUrl を呼び出す人は、そのファイルを含むレコードへのアクセス権を持ってる必要があります。
ファイルは、添付ファイル、メモ、ファイル列、または画像列になります。 いくつかの制限が適用されます
注意
管理者は、SAS IP 制限機能 (プレビュー) を使用してテナントを構成できるため、クライアント アプリケーションの IP アドレスに基づいてダウンロードを制限できます。 これを有効にすると、ユーザーは、コンピューターの IP アドレスがテナントに設定された制限を満たしておらず、ファイルをダウンロードしようとすると、401 エラーを受け取ります。
Parameters
GetFileSasUrl メッセージには以下のパラメーターがあります:
| 件名 | タイプ | プロパティ |
|---|---|---|
Target |
EntityReference/ crmbaseentity |
ファイルまたは画像データを含むテーブル行を識別します。 |
FileAttributeName |
文字列 | データを含むファイルまたは画像列の名前を識別します。 メモおよび属性レコードの場合、この値は空の文字列である必要があります。 |
DataSource |
文字列 | レコードがretainedのフラグを付けられたか、binなテーブルで削除された場合は または の値です。 |
回答
GetFileSasUrl メッセージによって返されるデータには、次のデータを含む Result プロパティがあります:
| 件名 | タイプ | プロパティ |
|---|---|---|
FileName |
文字列 | ファイル名です。 |
FileSizeInBytes |
int64 | ファイル サイズ (バイト数)。 |
MimeType |
文字列 | ファイルの MIME タイプ。 |
SasUrl |
文字列 | ファイルにアクセスするために使用できる共有アクセス署名 (SAS) URL です。 |
使用例
これらのサンプル関数は、SDK for .NET と Web API の両方で GetFileSasUrl メッセージを使用する方法を示しています。
この静的 GetFileSasUrl メソッドは、GetaFileSasUrlRequest クラスと GetFileSasUrlResponse クラスを使用します。
GetFileSasUrlResponse.Result プロパティ は、匿名でファイルをダウンロードするために必要な情報を含む FileSasUrlResponse クラス インスタンスを返します。
/// <summary>
/// Generates a link for anonymous access to a file.
/// </summary>
/// <param name="service">The authenticated IOrganizationService instance.</param>
/// <param name="target">The record that has the file data.</param>
/// <param name="fileAttributeName">Optional name of the file or image column</param>
/// <param name="dataSource">Optional source of the data when retained or deleted.</param>
/// <returns>Information to download a file</returns>
static FileSasUrlResponse GetFileSasUrl(IOrganizationService service,
EntityReference target,
string? fileAttributeName = null,
string? dataSource = null) {
var request = new GetFileSasUrlRequest() {
Target = target
};
if (target.LogicalName == "annotation" ||
target.LogicalName == "activitymimeattachment"){
//FileAttributeName is required
request.FileAttributeName = string.Empty;
}
else
{
if (!string.IsNullOrEmpty(fileAttributeName))
{
request.FileAttributeName = fileAttributeName;
}
else
{
string message = "fileAttributeName is required ";
message += "when the target isn't annotation ";
message += "or activitymimeattachment";
throw new Exception(message);
}
}
if (!string.IsNullOrEmpty(dataSource)) {
//dataSource should be 'retained' or 'bin'
request.DataSource = dataSource;
}
var response = (GetFileSasUrlResponse)service.Execute(request);
return response.Result;
}
制限
以下の制限があります:
-
GetFileSasUrlはフルサイズの画像をサポートするように構成された画像列でのみ機能します。 どの画像列がフルサイズの画像をサポートしているかを検出する方法 -
GetFileSasUrlは、自己管理データベース暗号化キー機能 (BYOK) を使用し続けている環境では機能しません。 BYOK を使用しているお客様は、カスタマー管理キー (CMK) を使用して移行し、GetFileSasUrlを使用する必要があります。
参照
ファイルおよび画像の概要
ファイル列のデータを使用する
ファイル列のデータを使用する
添付ファイルとメモ レコードでファイル データを使用する