Windows Azure:如何在blob容器中创build子目录

如何在blob容器中创build一个子目录

例如,

在我的blob容器http://veda.blob.core.windows.net/document/

如果我存储一些文件,它会

http://veda.blob.core.windows.net/document/1.txt

http://veda.blob.core.windows.net/document/2.txt

现在,如何创build一个子目录

http://veda.blob.core.windows.net/document/folder/

这样我可以存储文件

http://veda.blob.core.windows.net/document/folder/1.txt

要加上Egon所说的,只需创build一个名为“folder / 1.txt”的blob,它就可以工作。 不需要创build一个目录。

实际上只有一层容器。 你几乎可以创build一个类似分层存储的“文件系统”,但是实际上所有东西都在1层,就是容器。

为了创build像存储这样的虚拟“文件系统”,可以使用包含“/”的blob名称,以便您可以使用存储的方式执行任何操作。 另外,最重要的是你可以在虚拟层次上search一个blob,通过给出一个部分string,直到'/'。

这两件事情,一个path加一个'/'和一个search部分string,一起创build一个虚拟的“文件系统”存储。

有一个评论@ afr0问如何过滤文件夹..

有两种方法使用GetDirectoryReference或循环访问容器blob并检查types。 下面的代码是在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存储资源pipe理器 ,则会出现一个“新build文件夹”button,允许您在容器中创build文件夹。 这实际上是一个虚拟文件夹:

在这里输入图像说明

在Azure Portal中,我们在上传文件时有以下选项:

在这里输入图像说明

下面是我如何在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