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