Microsoft Azure Blob Storageからファイルをダウンロードする

Home > Microsoft Azure Blob Storage > 例02

説明

これは、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" });

単一ファイルのダウンロード

単一ファイルのダウンロード時、ダウンロード先が同じソースからではないため、ブラウザがダウンロード先を直接開かない場合があります。

複数ファイルのダウンロード