0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Azure Blob Storageでコードからサブフォルダを作成する方法

Last updated at Posted at 2024-12-18

Azure Blob Storageでコードからサブフォルダを作成する方法

Azure Blob Storageでは、サブフォルダを作成するために何かしらのファイルをアップロードする必要があります。以下のコードは、C#を使用してAzure Blob Storageにサブフォルダを作成するサンプルです。あんまり調べても出てこなかったので備忘も兼ねて書きます。

必要なパッケージ

まず、Azure Blob Storageを操作するために必要なパッケージをインストールします。

dotnet add package Azure.Storage.Blobs

コード例

以下のコードは、BlobServiceクラスを定義し、サブフォルダを作成するためのメソッド作ります

BlobService.cs
using Azure.Storage.Blobs;
public class BlobService
{
    private readonly BlobContainerClient _containerClient;

    public BlobService(IConfiguration configuration)
    {
        //環境変数から取得する
        //AppService等使ってる場合はマネージドIDからDefaultAzureCredentialsで取ってきたほうがベター
        var connectionString = configuration["AzureBlobStorage:ConnectionString"];
        var containerName = configuration["AzureBlobStorage:ContainerName"];
        var serviceClient = new BlobServiceClient(connectionString);
        _containerClient = serviceClient.GetBlobContainerClient(containerName);
    }
    //サブフォルダを作るメソッド
    //なんでも良いのでファイル入れる必要があります
    //ここではcreate.txtを作成しています
    public async Task CreateSubFolderAsync(string subFolderName)
    {
        var blobClient = _containerClient.GetBlobClient($"yourFolder/{subFolderName}/"+"create.txt");
        await blobClient.UploadAsync(new MemoryStream(), overwrite: true);
    }
}

こんな感じで使います

        [HttpPost]
        public async Task<IActionResult> CreateFolder(string folderName)
        {
            if (!string.IsNullOrEmpty(folderName))
            {
                await _blobService.CreateSubFolderAsync(folderName);
            }
            return RedirectToAction("Index");
        }

説明

  1. BlobServiceクラスのコンストラクタ:

    • IConfigurationを使用して、Azure Blob Storageの接続文字列とコンテナ名を取得します。
    • BlobServiceClientを作成し、指定されたコンテナのクライアントを取得します。
  2. CreateSubFolderAsyncメソッド:

    • 指定されたサブフォルダを作成するために、create.txtという名前のファイルをアップロードします
    • Azure Blob Storageでは、空のフォルダを作成することができないため、何かしらのファイルをアップロードをする必要があります

まとめ

Azure Blob Storageでサブフォルダを作成するためには、空のファイルをアップロードする必要があるよ~ということです。
ちなみにこの記事の8割は手元のコードに対してGithub Copilot君にQiitaの記事を書いてと投げて生成されたものです。便利ですね。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?