Azure Blob Storageファイルアップロード
Azureのデータストレージサービスには、Blob Storage、Table Storage、Queue Storage、File Storageなどがあります。DEXTUploadX5は、Blob Storageサービスにファイルをアップロードする機能を提供します。
DEXTUploadX5製品がAzure Blob Storageにファイルをアップロードするためには、異なるソース間の通信を許可する必要があるため、ストレージを使用するアカウントのBlobサービスにCORS設定を行う必要があります。アップロードおよびダウンロード機能を使用するためには、HEAD、GET、POST、PUT、OPTIONSのリクエストメソッドと、content-type、x-request-with、x-ms-*のリクエストヘッダーを許可する必要があります。また、運用時にはAllowed Origins属性を『*』値に設定しないように注意する必要があります。

- 共有アクセストークンを使用してアップロードする
-
DEXTUploadX5は、Azure Blob Storageにファイルを直接アップロードするために共有アクセストークンが必要です。共有アクセストークンはセキュリティのため、バックエンドで生成し、DEXTUploadX5に送信する必要があります。
Azure Blob Storageにアップロードするには、アップロードモードを『AZRBS』に設定し、setAZRBSUploadConfigメソッドを使用して必要な設定値を提供する必要があります。
dx.setUploadMode("AZRBS"); dx.setAZRBSUploadConfig({ accountName: "photomanager", containerName: "photos", sasListURL: "https://domain/path/get-list-sastoken", sasUploadURL: "https://domain/path/get-upload-sastoken" });上記のコードにおいて、accountNameはAzure Blob Storageのアカウント名、containerNameはBlob Storageのコンテナ名を指します。sasListURLとsasUploadURLはそれぞれ共有アクセストークンを取得するためのURLです。
プラットフォームに適した Azure Storage SDK を使用して、サーバー側でアップロードプロセスに必要な共有アクセストークンを取得するステップを実装すれば、アクセスキーなどのセキュリティ情報を露出せずに、ファイルアップロードプロセスを DEXTUploadX5 が処理するようにできます。
共有アクセストークンを取得するプロセスを理解するために、Java WebアプリケーションやASP.NET環境で利用可能な例が提供されていますので、提供された例を参考に実装してください。
-
JavaとMavenを使用する環境の場合、Azure SDKの取得方法
<dependency> <groupId>com.azure</groupId> <artifactId>azure-storage-blob</artifactId> <version>12.x.x</version> </dependency> -
JavaとGradleを使用する環境の場合、Azure SDKを取得する方法
implementation 'com.azure:azure-storage-blob:12.x.x'
-
ASP.NET環境の場合、Azure Storage SDKを取得する方法
NuGetパッケージマネージャーを使用してAzure.Storage.Blobsパッケージをインストールすると、Azure.Identity.dll、Azure.Storage.Blobs.dll、Azure.Storage.Common.dll、netstandard.dllを取得できます。
バケットにアップロードされるファイルはBlob名で区別されます。一般的にBlob名はファイル名を使用しますが、同じ名前のファイル同士が上書きされる問題を解決するため、Blob名をより具体的に設定する必要があります。製品ではデフォルトでBlob名をファイル名として使用しますが、ファイル名以外の形式を設定するには、makeKeyプロパティにBlob名を生成する関数を設定します。ここでKeyとBlob名は同じ意味で使用されます。
dx.setAZRBSUploadConfig({ ... // Blob name: component-name/file-name makeKey: item => `${item.controlId}/${item.name}` });Azure Blob Storageは、Amazon S3と同様に、Blob名に「/」文字を挿入することで、フォルダー構造のようにファイルを区別できます。
-
- 特徴
-
- DEXTUploadX5は、Azure Blob Storageサービスがサポートするマルチパートアップロード方式を使用するため、大容量ファイルのアップロードが可能です。
- 続きアップロード機能は、最大7日以内に限り有効です。コミットされていないBlobのブロックは7日間のみ保持されます。
- 大容量ファイルをアップロードする場合、chunkSizeの値を変更する必要がある場合があります。
- Azure Blob Storageにファイルをアップロードする場合、進行状況ウィンドウに表示される進行率は、他のアップロード方式に比べて自然でない場合があります。
- メタデータもアップロードされます。ただし、値はBASE64でエンコードされます。