Java – Azure Blob Storage からファイルのダウンロード No.27

自己投資の一つとしてチャレンジしている 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

以上です。参考になりましたら幸いです。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です