我试图通过迭代“文件夹”blob列表来获取容器中的虚拟目录。
folder(prefix)
|
|-->somefile.ext
我注意到它只会抓取该文件夹(blob),如果其中有文件。
我需要能够抓取虚拟文件夹,即使它没有文件,所以我可以上传到它。
folder(prefix)
for (ListBlobItem c : container.listBlobs("prefix")) {
if (c.getUri().toString().endsWith("/")){
//print blob
}
}
答案 0 :(得分:2)
天蓝色blob存储中没有文件夹这样的东西。所以只能有空容器,而不是空文件夹。
文件夹是虚拟的,仅由于其中的blob而存在。 blob的路径定义了虚拟文件夹,这就是为什么你不能获得没有blob的虚拟文件夹的原因。
您可以通过设置新blob的路径来“创建”新文件夹。例如,通过上传名为“my_not_yet_existing_folder / myimage.jpg”的blob
例如(来自the docs的修改示例):
try
{
// Retrieve storage account from connection-string.
CloudStorageAccount storageAccount = CloudStorageAccount.parse(storageConnectionString);
// Create the blob client.
CloudBlobClient blobClient = storageAccount.createCloudBlobClient();
// Retrieve reference to a previously created container.
CloudBlobContainer container = blobClient.getContainerReference("mycontainer");
final String filePath = "C:\\myimages\\myimage.jpg";
// Create or overwrite the "myimage.jpg" blob with contents from a local file.
CloudBlockBlob blob = container.getBlockBlobReference("my_not_yet_existing_folder/myimage.jpg");
File source = new File(filePath);
blob.upload(new FileInputStream(source), source.length());
}
catch (Exception e)
{
// Output the stack trace.
e.printStackTrace();
}