gpt4 book ai didi

Java-Azure 列表 Blob 目录

转载 作者:行者123 更新时间:2023-12-02 08:03:38 24 4
gpt4 key购买 nike

我试图通过迭代“文件夹”blob 列表来获取容器中的虚拟目录。

folder(prefix) 
|
|-->somefile.ext

我注意到它只会抓取该文件夹(blob),如果其中有文件的话。

我需要能够获取虚拟文件夹,即使其中没​​有文件,这样我就可以上传到它。

folder(prefix) 


for (ListBlobItem c : container.listBlobs("prefix")) {
if (c.getUri().toString().endsWith("/")){
//print blob
}
}

最佳答案

Azure 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();
}

关于Java-Azure 列表 Blob 目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49514197/

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