BLOBコンテナーにサブディレクトリを作成する方法
例えば、
私のblobコンテナーhttp://veda.blob.core.windows.net/document/
いくつかのファイルを保存すると、
次に、サブディレクトリを作成する方法
ファイルを保存できるように
BLOBコンテナーにサブディレクトリを作成する方法
例えば、
私のblobコンテナーhttp://veda.blob.core.windows.net/document/
いくつかのファイルを保存すると、
次に、サブディレクトリを作成する方法
ファイルを保存できるように
回答:
Egonの発言に追加するには、「folder / 1.txt」というblobを作成するだけで機能します。ディレクトリを作成する必要はありません。
実際には、コンテナのレイヤーは1つだけです。階層化ストレージのような「ファイルシステム」を仮想的に作成することができますが、実際にはすべてが1つのレイヤーにあります。
ストレージのような仮想「ファイルシステム」を作成するには、「/」を含むblob名を使用して、保存方法を好きなようにすることができます。また、優れた点は、 '/'までの部分的な文字列を指定することにより、仮想レベルでblobを検索できることです。
パスに「/」を追加し、検索用の部分的な文字列を追加するこれら2つのことにより、仮想「ファイルシステム」ストレージが作成されます。
フォルダーをフィルターする方法を尋ねる@ afr0によるコメントがあります。
GetDirectoryReference
またはを使用してコンテナblobをループし、タイプをチェックする方法は2つあります。以下のコードはC#です
CloudBlobContainer container = blobClient.GetContainerReference("photos");
//Method 1. grab a folder reference directly from the container
CloudBlobDirectory folder = container.GetDirectoryReference("directoryName");
//Method 2. Loop over container and grab folders.
foreach (IListBlobItem item in container.ListBlobs(null, false))
{
if (item.GetType() == typeof(CloudBlobDirectory))
{
// we know this is a sub directory now
CloudBlobDirectory subFolder = (CloudBlobDirectory)item;
Console.WriteLine("Directory: {0}", subFolder.Uri);
}
}
詳細については、こちらをご覧ください。http://www.codeproject.com/Articles/297052/Azure-Storage-Blobs-Service-Working-with-Directori
Microsoft Azureストレージエクスプローラーを使用している場合は、コンテナー内にフォルダーを作成できる[新しいフォルダー]ボタンがあります。これは実際には仮想フォルダです:
サブディレクトリを作成する必要はありません。blobコンテナーを作成し、以下のコードのように変数filenameのようなファイル名を使用します。
string filename = "document/tech/user-guide.pdf";
CloudStorageAccount cloudStorageAccount = CloudStorageAccount.Parse(ConnectionString);
CloudBlockBlob blob = cloudBlobContainer.GetBlockBlobReference(filename);
blob.StreamWriteSizeInBytes = 20 * 1024;
blob.UploadFromStream(fileStream); // fileStream is System.IO.Stream
@Egonが前述したように、BLOBストレージには実際のフォルダー管理はありません。
ファイル名に「/」を使用すると、ファイルシステムの一部の機能を実現できますが、これには多くの制限があります(たとえば、「フォルダ」の名前を変更する必要がある場合はどうなりますか?)。
一般的なルールとして、ファイルをコンテナ内でできるだけフラットに保ち、アプリケーションでエンドユーザーに公開する構造を管理します(たとえば、データベース内のネストされたフォルダ構造を管理し、それぞれにレコードを作成します)ファイル、container-nameとfile-nameを使用してBLOBを参照)。
Azure Sample first-serverless-appを試しているときに同様の問題が発生しました。
$ webの前にある\を削除して解決した方法の情報を次に示します。
注:$ webコンテナーは、静的Webサイトを有効にしているときに自動的に作成されました。$ rootコンテナをどこにも見たことがない。
//getting Invalid URI error while following tutorial as-is
az storage blob upload-batch -s . -d \$web --account-name firststgaccount01
//Remove "\" @destination param
az storage blob upload-batch -s . -d $web --account-name firststgaccount01
Node.JSのCoffeeScriptでこれを行う方法は次のとおりです。
blobService.createBlockBlobFromText 'containerName', (path + '$$$.$$$'), '', (err, result)->
if err
console.log 'failed to create path', err
else
console.log 'created path', path, result
C#