none
Azure App Serviceでファイルストレージ機能を使用する方法 RRS feed

  • 質問

  • お世話になります。

    Azure App Service上のAsp.NET Coreアプリケーションにファイルアップロード/ダウンロード機能を追加する方法を教えて下さい。

    アップロードするファイルは数10KBぐらいのCSVファイルを想定しています。
    SQL Databaseに直接書き込むのはまずいですよね?
    なので、なんらかのファイルストレージ機能を使ってそこに連携したほうがよいと考えました。
    しかし、AzurePortalのストレージカテゴリだけでもAzure NetApp Filesなど15もサービスがあり、どれが適切なのかわかりません。

    できている部分

    Azure App Service での ASP.NET Core および SQL Database アプリの作成https://docs.microsoft.com/ja-jp/azure/app-service/app-service-web-tutorial-dotnetcore-sqldb#create-production-sql-database

    に従ってAppService上でAsp.NET Coreアプリケーションを動作させることはできました。
    さらにソースコード上でwwwroot内に直接ファイルを配置して、アプリケーションのダウンロードボタン押下でダウンロードさせることはできました。

    補足情報

    開発環境

    Windows 10 1909
    Visual Studio 2019 ver. 16.6.1
    .NET Core 3.1

    筆者のレベル

    C#を用いたデスクトップアプリケーションの開発経験(WPF)はあります。 C#言語自体はおおよそ理解しているつもりです。
    WebアプリケーションはC#も含めて、初心者です。


    2020年6月3日 2:47

回答

  • ファイルのアップロード、ダウンロードのみが実施できれば良いだけであれば、Azure Blob Storage でも問題ないと思います。

    チュートリアル:Azure Storage を使用してクラウドに画像データをアップロードする
    https://docs.microsoft.com/ja-jp/azure/storage/blobs/storage-upload-process-images?tabs=dotnet


    • 回答としてマーク fukasawaIx 2020年6月9日 11:53
    2020年6月3日 5:20

すべての返信

  • ファイルのアップロード、ダウンロードのみが実施できれば良いだけであれば、Azure Blob Storage でも問題ないと思います。

    チュートリアル:Azure Storage を使用してクラウドに画像データをアップロードする
    https://docs.microsoft.com/ja-jp/azure/storage/blobs/storage-upload-process-images?tabs=dotnet


    • 回答としてマーク fukasawaIx 2020年6月9日 11:53
    2020年6月3日 5:20
  • 回答ありがとうございます。
    チュートリアルをやってみて、また結果を報告します。
    2020年6月4日 2:50
  • 今後のアプリケーションの実装方式にもよりますが、Azure Blob Storage にファイルがアップロードしたことをトリガーとして処理を実施 (Azure Storage トリガー、Event Grid + Azure Function, Logic Apps) するなど、Azure サービスを組み合わせることで様々なことを実現することが可能であり、Web アプリケーション側の実装を少なくすることができると思いますので、色々と検討されると良いかと思います。

    2020年6月4日 5:00
  • ありがとうございます。たしかにチュートリアルにもAzure Functionが出てきました。

    Webアプリケーション(ASP.NET Core Razor Pages)だけで全て済まそうかと思っていたのですが、
    そういったトリガーなどを利用するほうが良いのですね。

    メリットとしてはどういったものなのでしょうか?
    保守容易性・再利用性・パフォーマンスなどでしょうか?

    2020年6月4日 8:17
  • マイクロサービス化による保守容易性、再利用性、拡張性、WEBアプリのバイナリサイズが小さくなるのもメリットかもしれません。今後、コンテナなどに移植することを視野に入れている場合など。(Azure App Serviceもコンテナ化できますが。)

    既存のアプリケーションをマイクロサービス化することは困難であるため、クラウド化といってもリフトのみが多いような気がしますが、新規アプリケーション開発なのであれば、新しいことに挑戦してみても良いのではないかと思っています。

    2020年6月4日 13:33
  • いろいろと、手こずりましたが、なんとかダウンロードできるようになりました。

    ありとうございました。

    2020年6月9日 11:54