我创建了一个解决方案来访问我的asp.net core 3.1应用程序中的容器内容,并将该内容作为列表返回到我的视图中。目前,应用程序访问了名为upload
的根容器中的数据,但是此容器有许多子容器,我想在称为1799
的特定容器中列出这些blob。
因此,我不想访问upload
并向我展示该容器的全部内容,而是要访问upload/1799
并列出该容器中的所有blob。
我仍然看不到将此子容器添加到我的方法中并允许发生这种情况,任何人都可以帮忙吗?
到目前为止,这是我的代码:
CarController.cs
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
namespace MyProject.Controllers
{
public class HomeController : Controller
{
private readonly IConfiguration _configuration;
private readonly string accessKey = string.Empty;
public HomeController(IConfiguration configuration)
{
_configuration = configuration;
accessKey = _configuration.GetConnectionString("AzureStorage");
}
[HttpGet]
public IActionResult Edit(int id)
{
var car = _carService.GetVessel(id);
string strContainerName = "uploads";
string subdir = "1799";
var filelist = new List<BlobListViewModel>();
BlobServiceClient blobServiceClient = new BlobServiceClient(accessKey);
BlobContainerClient containerClient = blobServiceClient.GetBlobContainerClient(strContainerName);
var blobs = containerClient.GetBlobs();
foreach (var item in blobs)
{
filelist.Add(new BlobListViewModel
{
FileName = item.Name
});
}
return View(filelist);
}
}
我已经浏览了所有文档,但找不到与此相关的任何内容。
答案 0 :(得分:0)
感谢大卫·布朗(David Browne)的评论,实际上GetBlob()
中有一个前缀选项。在某些方面,它们像微型过滤器一样工作,可让您定义返回的属性和Blob状态等。这是我的代码,其中选项Default
和{{ 1}}。
Trait