自己投資の一つとしてチャレンジしている Programming の Java の独習状況を Blog で公開しています。今回はクラウドの Storage の一つ Azure Blob Storage にアクセスしファイルをダウンロードする方法ついて紹介します。(In English: Java – Download files from Azure Blob Storage No.27)
————————————
▼1. Azure Blob Storage へアクセスしファイルをリスト後ダウンロードする
————————————
IntelliJ IDEA 2021.1.2 (Community Edition) の環境で、Azure Blob Storage にアクセスし、Storage 上にあるファイルを列挙(リスト) 後、ダウンロードする Java コードを書きます。OS は Ubuntu 20.04.2 LTS を利用しています。
————————————
▼2. 事前準備
————————————
2-1. Java 8 JDK のインストール
Azure でサポートしている Azul Zulu OpenJDK Java 8 (LTS) を利用します。インストール方法はこちらのサイトを確認ください。Download Azul Zulu Builds of OpenJDK | Azul
(例) JAVA_HOME
$echo $JAVA_HOME
/usr/lib/jvm/zulu-8-azure-jdk_8.54.0.21-8.0.292-linux_x64/
2-2. Azure 無料アカウントを作成し、Azure Blob Storage アカウントを作成します。
Azure 無料アカウント FAQ | Microsoft Azure
2-3. Azure Storage Explorer から作成した Azure 無料アカウントに接続し、作成した Azure Blob Storage にある [Blob Containers] を右クリック、[Blob コンテナーの作成] をクリックし、ここでは “files” のコンテナーを作成します。作成した files コンテナーに abc.txt のファイルを置きます(今回 abc.txt というファイルを利用しています)。
Azure Storage Explorer – クラウド ストレージ管理 | Microsoft Azure
————————————
▼3. Azure Blob Storage へアクセスしファイルをリストしダウンロードするコード
————————————
3-1. IntelliJ IDEA をインストールしたディレクトの bin にある idea.sh を実行し IntelliJ を起動します。メニューの [File]-[New]-[Project]をクリックし [Maven] をクリックします。Project SDK 1.8 が選択されていることを確認し、[Next] をクリック、その後 Name および Location を指定して、[Finish] をクリックします。
(例) IntelliJ IDEA の起動
$~/Downloads/idea-IC-211.7142.45/bin/idea.sh
3-2. pom.xml に、blob storage 操作のための library のバージョンを指定します。
Quickstart: Azure Blob Storage library v12 – Java | Microsoft Docs
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-storage-blob</artifactId>
<version>12.11.1</version>
</dependency>
</dependencies>
上の指定後、以下のような UI が pom.xml 上に表示されるのでクリックして、ライブラリーをダウンロードします。
3-3. Sampleblaccv1.java を作成
作成したプロジェクトにある [src]-[main]-[java] を右クリックし [New] – [java Class] を選択し、New Java Class で [Class] を選択後、Sampleblacc の名前を入力し Enter を押します。
ここでは Sampleblacc.java で Azure Blob Storage にアクセスし、保存されているファイルをリストした後、指定したファイル abc.txt をダウンロードします。
以下のコードの connStr の変数は、Azure Portal のサイトから利用する Azure Blob Storage のアカウントの Connection String をコピーし、connectStr にペーストします。
(例)
import com.azure.storage.blob.*;
import com.azure.storage.blob.models.BlobItem;
public class Sampleblacc {
public static void main(String[] args) {
String connectStr = "<ConnectionString>";
String containerName = "files";
String downloadFileName = "abc.txt";
String localPath = "/home/user/";
// Create a BlobServiceClient object which will be used to create a container client
BlobServiceClient blobServiceClient = new BlobServiceClientBuilder().connectionString(connectStr).buildClient();
BlobContainerClient containerClient = blobServiceClient.getBlobContainerClient(containerName);
System.out.println("\nListing blobs...");
// List the blob(s) in the container.
for (BlobItem blobItem : containerClient.listBlobs()) {
System.out.println("\t" + blobItem.getName());
}
//Get a reference to a blob
BlobClient blobClient = containerClient.getBlobClient(downloadFileName);
//Download the blob to a local file
System.out.println("\nDownloading blob to \n\t " + localPath + downloadFileName);
blobClient.downloadToFile(localPath + downloadFileName);
}
}
3-4. 実行結果は以下となります。
[Build] のメニューにある [Build Project] からプロジェクトを build し、エラーなく build されたことを確認後、メニューにある [Run] – [Run] をクリックし、コードを実行します。
(例) 実行結果(一部)
Listing blobs...
README.md
abc.txt
Downloading blob to
/home/user/abc.txt
————————————
▼4. 参考情報
————————————
(1) Azure 無料アカウント FAQ | Microsoft Azure
(2) Quickstart: Azure Blob storage client library v8 for Java | Microsoft Docs
(3) Quickstart: Azure Blob Storage library v12 – Java | Microsoft Docs
以上です。参考になりましたら幸いです。