2017-10-23 11 views
0

私はAzureファイルストレージとIFileProviderインターフェイスを実装することを考えています。 ドキュメント内で見つけようとしているのは、Azure APIのようなAzure APIへのパス全体をrootDirectory/sub1/sub2/example.fileのように送信する方法があるか、実際にパスを取得し、ファイルストレージ上のディレクトリ構造をトラバースする再帰関数にマップする必要があるかどうかです。IFileProvider Azureファイルストレージ

私が何かを逃していないことを確認して、すでに存在するもののために車輪を再発明したいだけです。

[UPDATE]

私は.NET用Azureストレージクライアントを使用しています。私は何も載せたくない。 私の意図は、Environmentと他の条件に基づいて切り替えることができるいくつかのIFileProvidersを持つことです。

たとえば、自分の環境がCloudの場合、Azure Storage Clientを介してAzureファイルサービスを使用するIFileProvider実装を使用します。次に、私は環境MyServerを持っている場合、私はサーバーのローカルファイルシステムを使用します。第3の選択肢は、その特定の実施形態の環境someOtherであろう。

ここで、IFileProviderは、すべてroot/sub1/sub2/sub3のようなパスで動作します。 Azureファイルストレージの場合は、一度にパス全体を送信してsub3情報/コンテンツを取得するか、パスを個々のディレクトリに分割して各ステップの参照/コンテンツを取得する必要がありますか?

質問をクリアすることを願っています。

+0

を私の知る限り、あなたは(https://docs.microsoft.com/en [マウント]可能性が次のようにCloudFileインスタンスを返すメソッド-us/azure/storage/files/storage-how-to-use-files-windows)を使用してファイル共有を行い、ローカルファイルシステムと同じようにアクセスします。また、ストレージクライアントライブラリを活用してファイルストレージにアクセスすることもできます。詳細については、この[チュートリアル](https://docs.microsoft.com/en-us/azure/storage/files/storage-dotnet-使用方法に関するファイル)。私はあなたの要件を正しく理解できませんでした。取り扱っている機能やシナリオに関する詳細を質問に反映させることができましたか? –

+0

@BruceChenご意見ありがとうございます。私は質問を更新しました。 –

答えて

1

これらのすべてについて、IFileProviderは、úroot/ sub1/sub2/sub3のようなパスで動作します。 Azure File Storageの場合、getsub3` info/contentに一度にパス全体を送信する方法がありますか、パスを個々のディレクトリに分割して各ステップの参照/コンテンツを取得する必要がありますか?次のように

は、アクセスのために複数のサブディレクトリ間で特定のサブディレクトリは、あなたが CloudFileDirectoryを構築するため GetDirectoryReference方法を使用することができます。

var fileshare = storageAccount.CreateCloudFileClient().GetShareReference("myshare"); 
var rootDir = fileshare.GetRootDirectoryReference(); 
var dir = rootDir.GetDirectoryReference("2017-10-24/15/52"); 
var items=dir.ListFilesAndDirectories(); 

をアクセスするために、サブディレクトリの下に特定のファイルを、あなたはGetFileReferenceを使用することができます

var file=rootDir.GetFileReference("2017-10-24/15/52/2017-10-13-2.png"); 
+0

huh ...私は確かに私は正確にそれを試して、それは仕事をdidntが、あなたが何を話しているかを知っているように感じるので、私はもう一度やり直してダブルチェックします。もしそれが存在しなければ、それは創造のために働かなければならないでしょうか? –

+0

私の意見では、サブフォルダ/ファイルを作成するときに親フォルダが存在することを確認する必要があります。 –

+0

作成中のサブフォルダ/ファイルをテストしましたが、親フォルダが存在しない場合は404エラーが発生します。 –

関連する問題