説明
これは、Microsoft Azure Blob Storage内の特定のコンテナに存在するファイルをダウンロードする例です。DEXTUploadX5は、共有アクセス署名(SAS)トークンを取得することで、コンテナからファイルをダウンロードする機能を提供します。共有アクセストークンを取得するには、事前にアカウント、コンテナ、アクセスキーの情報が必要であり、アクセスキーは外部に公開すべきでない機密情報であり、バックエンドで管理する必要があります。
以下のコードは、DEXTUploadX5 を設定してコンテナからファイルをダウンロードする方法を示しています。
// AZRBS メソッドを設定します。
dx.setDownloadMode("AZRBS");
dx.setAZRBSDownloadConfig({
accountName: "photomanager",
containerName: "photos",
// ファイルダウンロードの各ステップで必要な共有アクセストークンを生成するためのハンドラーアドレス
sasDownloadURL: dx5.canonicalize("../service/get-download-sastoken.do")
});
sasDownloadURLは、ファイルをダウンロードする際に必要な共有アクセストークンを生成して返す役割を担っています。バックエンドで共有アクセストークンを作成するには、Microsoftが提供するAzure SDKを使用する必要があります。Maven環境の場合、以下の依存関係を使用して必要なSDKを取得できます。サンプルプロジェクトでは、WEB-INF/libフォルダーに必要 なJARファイルを配置しています。
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-storage-blob</artifactId>
<version>12.31.0</version>
</dependency>
Azure SDKを使用して共有アクセストークンを生成する詳細な内容は、AzureSasTokenGenerator、AZRBSController クラスを参照してください。
コンテナに格納されたオブジェクト(ファイル)は、以下のアドレス指定方式でアクセスできます。ここで『key』はブロブ名と同じです。
https://{account-name}.blob.core.windows.net/{container-name}/{key}
上記のアドレスを仮想ファイルのURLに設定することをおすすめします。
dx.addVirtualFile({ name: "bridge_509147.jpg", size: 509147, url: "https://photomanager.blob.core.windows.net/photos/bridge_509147.jpg" });
dx.addVirtualFile({ name: "beach_239826.jpg", size: 239826, url: "https://photomanager.blob.core.windows.net/photos/beach_239826.jpg" });
dx.addVirtualFile({ name: "cosmos (empty) 195779.jpg", size: 195779, url: "https://photomanager.blob.core.windows.net/photos/cosmos+%28empty%29+195779.jpg" });
例
単一ファイルのダウンロード |
|
単一ファイルのダウンロード時、ダウンロード先が同じソースからではないため、ブラウザがダウンロード先を直接開かない場合があります。 |
|
複数ファイルのダウンロード |
|
|