gpt4 book ai didi

java - 从 blob 存储下载虚拟目录

转载 作者:太空宇宙 更新时间:2023-11-04 10:47:06 26 4
gpt4 key购买 nike

我想从 Azure Blob 存储下载虚拟目录。目录存在于容器中。我尝试使用ColudBlobDirectory API。但它没有任何下载虚拟目录的方法。

for (ListBlobItem blobItem : container.listBlobs()) { 
// If the item is a blob, a virtual directory.
if (blobItem instanceof CloudBlobDirectory) {
CloudBlobDirectory blob1 = (CloudBlobDirectory) blobItem;
System.out.println("\n Blob prefix:" + blob1.getPrefix());
}
}

最佳答案

正如@talex所说,你可以像这样从目录中一一下载blob文件:

public static String destFilePath = "/path/to/directory/";

public static void main(String[] args)
throws InvalidKeyException, URISyntaxException, StorageException, IOException {

CloudStorageAccount account = CloudStorageAccount.parse(storageConnectionString);
CloudBlobClient serviceClient = account.createCloudBlobClient();
CloudBlobContainer container = serviceClient.getContainerReference("mycontainer");

for (ListBlobItem blobItem : container.listBlobs()) {

// If the item is a blob, a virtual directory.
if (blobItem instanceof CloudBlobDirectory) {

CloudBlobDirectory blobDir = (CloudBlobDirectory) blobItem;
downloadDirectory(blobDir);
}
}
}

public static void downloadDirectory(CloudBlobDirectory blobDir)
throws IOException, StorageException, URISyntaxException {

Files.createDirectories(Paths.get(destFilePath + blobDir.getPrefix()));

for (ListBlobItem blobInDir : blobDir.listBlobs()) {

if (blobInDir instanceof CloudBlockBlob) {
CloudBlockBlob blob = (CloudBlockBlob) blobInDir;
blob.downloadToFile(destFilePath + blob.getName());
} else {
downloadDirectory((CloudBlobDirectory) blobInDir);
}
}

}

关于java - 从 blob 存储下载虚拟目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48274744/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com