ファイル列
ファイル列は、指定された最大サイズまでのファイル データを格納するために使用されます。 カスタムまたはカスタマイズ可能なテーブルには、0 個以上のファイル列と、各メモに 0 から 1 個の添付ファイルがあるメモ (注釈) コレクションを含めることができます。 ファイル列の SchemaName は EntityFile で、LogicalName は entityfile です。
注意
エンティティとテーブルの違いがわかりませんか? Microsoft Dataverse で「開発者: 用語を理解する」を参照してください。
| Web API | .NET 用 SDK |
|---|---|
| FileAttributeMetadata | FileAttributeMetadata |
許可されないファイルの種類については、 ブロックする添付ファイルの拡張子の設定 設定の システム設定全般タブ を参照してください。
重要
いくつかの制限は、 Microsoft Dataverse のファイルおよび拡張イメージ データ型を使用するときに適用されます。 テナントで顧客管理キー (CMK) が有効になっている場合、テナントの組織は IoT データ型を使用できません。 除外されたデータ型を含むソリューションはインストールされません。 これらのデータ型を使用するには、顧客が CMK をオプトアウトする必要があります。
バージョン: 9.2.21052.00103 現在のすべての CMK 組織は、Dataverse ファイルと画像のデータ型をサポートできます。 CMK 組織内のファイルは、ファイルあたり最大 128MB のサイズに制限されています。 CMK 組織内のすべてのファイルと画像は、Dataverse ファイル Blob Storage の代わりに Dataverse に保存されます。 その他の制限事項:- ユーザー委任 SAS ダウンロードはサポートされていません
- チャンクのアップロードとダウンロードは 1 つのチャンクに制限されています
ファイル列は、SdkClientVersion 9.0.45.329 以降および Web API バージョン 9.1 以降でサポートされています。 ファイル列は、メモ (注釈) テーブルでのみ Power Apps ポータルでサポートされます。
サポートされている列
ファイル列がテーブルに追加されると、一部の追加の列がそれをサポートするために作成されます。
MaxValue 列
MaxValue 列、列に含めることができるファイル データの最大サイズ (キロバイト単位) を表します。 この値を、特定のアプリケーションに適した最小の使用可能データ サイズに設定してください。 許容サイズ制限と既定値に対する MaxSizeInKB のプロパティを参照してください。
注意
MaxValue が設定されるのは、[ファイル] 列がテーブルに追加されたときです。 設定後は変更するできません。
ファイル データの取得
Retrieve および RetrieveMultiple メッセージを使用してファイル データをダウンロードできません。
ファイル列データを取得するには、次の API を使用します。
| Web API | .NET 用 SDK |
|---|---|
| なし | InitializeFileBlocksDownloadRequest、 InitializeAttachmentBlocksDownloadRequest、 InitializeAnnotationBlocksDownloadRequest |
| GET /api/data/v9.1/<entity-type(id)>/<file-attribute-name>/$value | DownloadBlockRequest |
Webサービス エンドポイントからのファイル データ転送は、単一のサービス コールで最大16 MBデータに制限されています。 その量を超えるファイル データは、4 MB以下のデータ ブロック (チャンク) に分割する必要があり、各ブロックはすべてのファイル データが受信されるまで、個別の API 呼び出しで受信されます。 ダウンロードしたデータ ブロックを結合して、ブロックを受信したのと同じ順序でデータ ブロックを結合して完全なデータ ファイルを形成するのは、ユーザーの責任です。
例: チャンクを使用したダウンロード
要求
GET [Organization URI]/api/data/v9.1/accounts(id)/myfileattribute/$value
Headers:
Range: bytes=0-1023/8192
応答
206 Partial Content
Body:
byte[]
Response Headers:
Content-Disposition: attachment; filename="sample.txt"
x-ms-file-name: "sample.txt"
x-ms-file-size: 8192
Location: api/data/v9.1/accounts(id)/myfileattribute?FileContinuationToken
チャンクは、要求の Range ヘッダーの存在に基づいて決定されます。 範囲ヘッダー値の形式は: startByte-endByte/total バイトです。 Range ヘッダーが含まれない場合、完全なファイルは 1 回のリクエストで (最大 16 MB) ダウンロードされます。 チャンクの場合、 Location 応答ヘッダーは、クエリ可能なパラメーター FileContinuationToken を含みます。 次の GET 要求で保存先ヘッダー値を使用して、順序内の次のデータ ブロックを取得します。
ファイル データ のアップロード
Create および Update メッセージを使用してファイル データをアップロードできません。
ファイル列データをアップロードするには、次の API を使用します。
| Web API | .NET 用 SDK |
|---|---|
| なし | InitializeFileBlocksUploadRequest、 InitializeAttachmentBlocksUploadRequest、 InitializeAnnotationBlocksUploadRequest |
| PATCH /api/data/v9.1/<entity-type(id)>/<file-attribute-name> | UploadBlockRequest |
| なし | CommitFileBlocksUploadRequest、 CommitAttachmentBlocksUploadRequest、 CommitAnnotationBlocksUploadRequest |
ファイルは、構成された完全な最大サイズまでで、またはチャンクでアップロードできます。
注意
この記事の公開日をもって、16MB を超えるファイルに対してチャンク アップロードを使用するという制限がなくなりました。 チャンキング API は、既存のソリューションとの下位互換性を維持するために引き続き利用できます。
例: Web API を使用した完全なファイル アップロード用の.NET C# コード
static async Task FullFileUploadAsync(
Uri urlPrefix,
string customEntitySetName,
string entityId,
string entityFileOrAttributeAttributeLogicalName,
string fileRootPath,
string uploadFileName,
string accessToken)
{
var filePath = Path.Combine(fileRootPath, uploadFileName);
var fileStream = File.OpenRead(filePath);
var url = new Uri(urlPrefix, $"{customEntitySetName}({entityId})/{entityFileOrAttributeAttributeLogicalName}");
using (var request = new HttpRequestMessage(new HttpMethod("PATCH"), url))
{
request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", accessToken);
request.Content = new StreamContent(fileStream);
request.Content.Headers.Add("Content-Type", "application/octet-stream");
request.Content.Headers.Add("x-ms-file-name", uploadFileName);
using (var response = await Client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
}
}
}
例: チャンクを使用したアップロード
以下は、4MB 以下のファイルデータブロックを分割して16MB 以上のデータファイルをアップロードする従来の方法です。 データ ブロックの完全なセットをアップロードし、コミット 要求を送信すると、Web サービスは、データ ブロックがアップロードされたのと同じ順序で、ブロックを Azure Blob Storage の単一データ ファイルに自動的に結合します。
最初の要求
要求
PATCH [Organization URI]/api/data/v9.1/accounts(id)/myfileattribute
Headers:
x-ms-transfer-mode: chunked
x-ms-file-name: sample.png
要求 (代替フォーム)
このフォームの要求では、クエリ文字列パラメーターを使用し、非 ASCII 言語ファイル名をサポートします。 ファイル名がヘッダーとクエリ文字列パラメーターの両方で指定されている場合は、ヘッダー値が優先されます。
PATCH [Organization URI]/api/data/v9.1/accounts(id)/myfileattribute?x-ms-file-name=测试.txt
Headers:
x-ms-transfer-mode: chunked
応答
200 OK
Response Headers:
x-ms-chunk-size: 4096
Accept-Ranges: bytes
Location: api/data/v9.1/accounts(id)/myfileattribute?FileContinuationToken
次の要求
要求
PATCH [Organization URI]/api/data/v9.1/accounts(id)/myfileattribute?FileContinuationToken
Headers:
Content-Range: bytes 0-4095/8192
Content-Type: application/octet-stream
x-ms-file-name: sample.png
Body:
byte[]
応答
206 Partial Content
ファイル データの削除
ファイル列データをストレージから削除するには、次の API を使用します。
| Web API (REST) | .NET API (SOAP) |
|---|---|
| DELETE /api/data/v9.1/<entity-type(id)>/<attribute-name> | DeleteFileRequest |
関連項目
注意
ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)
この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。
フィードバック
フィードバックの送信と表示