Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9370

Azure Storage (ファイル共有 / File Share)にファイルをプログラムからアップロードする方法

$
0
0

Azure Storage にファイルを保存する方法を記載。
Azure Storageの種類はファイル共有(blobではない)を利用。

事前準備

Azureポータルにてstorage環境作成

  • ストレージ アカウントの作成
  • 作成したストレージ アカウントからファイル共有(File Share)を作成

Azure.Storageライブラリのインストール

[NuGet パッケージの管理]から以下をインストール
- Azure.Storage.Common
- Azure.Storage.Files.Shares

プログラム

usingSystem.IO;usingAzure.Storage;usingAzure.Storage.Files.Shares;publicclassSampleClass{publicvoidUpload(){///Azureのストレージアカウントから情報を取得して設定stringaccountName="{Azureのポータルサイトからアカウント名を取得する。}";stringaccessKey="{Azureのポータルサイトからアクセスキーを取得する。}";Uriserverurl=newUri(@"{AzureのポータルサイトからURLを取得する。}");///アップロード先(azure側)stringazureDirectoryPath=@"{保存先(azure側)のディレクトリを指定}";stringazureFileName="{保存するファイル名称を指定}";///アップロード対象(Local側)stringlocalDirectoryPath=@"{アップロード対象(Local側)のディレクトリを指定}";stringlocalFileName="{アップロード対象(Local側)のファイル名を指定}";//SSL通信の許可設定//これをやっとかないと、SSL(https)通信でエラーが発生する。System.Net.ServicePointManager.SecurityProtocol=System.Net.SecurityProtocolType.Tls11|System.Net.SecurityProtocolType.Tls12;try{//Azureへ接続準備:接続情報の設定StorageSharedKeyCredentialcredential=newStorageSharedKeyCredential(accountName,accessKey);//Azureへ接続ShareClientshare=newShareClient(serverurl,credential);ShareDirectoryClientdirectory=share.GetDirectoryClient(azureDirectoryPath);//Upload先(azure側)にフォルダがなければ作成。directory.CreateIfNotExists();//Upload先(azure側)にファイルインスタンスを作成。ShareFileClientfile=directory.GetFileClient(azureFileName);//同名のファイルがあったら削除file.DeleteIfExists();//Upload対象のLocalファイルを開く。FileStream型で開くとバイナリ情報の取得が楽。FileStreamstream=File.OpenRead(Path.Combine(localDirectoryPath,localFileName));//Upload先(azure側)にファイルインスタンスにバイナリ情報を注入file.Create(stream.Length);file.UploadRangeAsync(newAzure.HttpRange(0,stream.Length),stream);//ローカルファイルの開放stream.Dispose();}catch(Exceptionex){System.Console.WriteLine(ex.Message);return;}}}

後記

  • ストレージへアクセスする際の推奨されているライブラリがWindowsAzure.StorageからAzure.Storageに変わった模様。Azure.Storageを利用したサンプルがなかったのでメモとして投稿。
  • Azure内で[ファイル共有]、[File Share]、[File サービス]と表記揺れがあった。(2020/09/30時点)同義語として解釈してよさそう。

Viewing all articles
Browse latest Browse all 9370

Latest Images

Trending Articles