Windows Azure:BLOB コンテナーにサブディレクトリを作成する方法
-
26-09-2019 - |
質問
BLOB コンテナーにサブディレクトリを作成する方法
例えば、
私のBLOBコンテナーで http://veda.blob.core.windows.net/document/
いくつかのファイルを保存すると、
さて、サブディレクトリの作成方法です。
ファイルを保存できるように
解決
単にあなたのブロブを作成し、エゴンが言ったことへの上に追加するには、「フォルダ/ 1.TXT」と呼ばれ、それが動作します。ディレクトリを作成する必要はありません。
他のヒント
コンテナの単一層だけが実際にあります。あなたは事実上階層ストレージのような「ファイル・システム」を作成することができますが、実際にはすべてが1層、それがであるコンテナになります。
ストレージなどの仮想「ファイルシステム」を作成するために、あなたはとてもあなたが保存の方法と同じように何でもあなたを行うことができます「/」が含まれているブロブ名を持つことができます。また、素晴らしいところは、あなたが「/」まで、部分文字列を与えることで、仮想レベルでのブロブを検索することができるということです。
これらの2つのこと、パスと検索のための部分的な文字列に「/」を追加し、一緒に仮想「ファイルシステム」ストレージを作成します。
フォルダにフィルタする方法を尋ねる@ afr0によってコメントはあり..
GetDirectoryReference
を使用するか、またはコンテナの塊をループしてタイプをチェックする二つの方法があります。以下のコードは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する
は、あなたが作成することができ、「新規フォルダ」ボタンがありますコンテナ内のフォルダ。 これは実際には仮想フォルダです。
として@Egonは、BLOBストレージには実際のフォルダ管理がない、上述した。
(あなたは、「フォルダ」の名前を変更する必要がある場合たとえば、何が起こる?)あなたはファイル名に使用して、ファイルシステム「/」の一部の機能を達成することができますが、これは多くの制限があります。
一般的なルールとして、私は、コンテナ内にをできるだけフラットとしての私のファイルを保持し、私のアプリケーションは、私は、たとえば、ネストされたフォルダを管理する(エンド・ユーザーに公開したいものは何でも構造で管理しています構造の私のデータベースにあるを、コンテナ名とファイル名)を使用してBLOBを参照し、各ファイルのレコードを持っています。
あなたは、サブディレクトリを作成する必要はありません。ただ、変数のようにブロブコンテナや使用ファイル名を作成するのファイル名のコードを以下のように:
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
ここで私は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
Azure サンプルを試しているときに同様の問題が発生しました 最初のサーバーレスアプリ.
$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