- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用 container.ListBlobs,但它似乎正在返回一个列表 {Microsoft.WindowsAzure.Storage.Core.Util.CommonUtility.LazyEnumerable} 但是当我执行 foreach 时,对象似乎是 CloudBlobDirectory 而不是列表CloudBlockBlob。我做错了什么,还是它应该返回什么?有什么方法可以只获取 blob 列表,而不是 blob 目录?
var storageAccount = CloudStorageAccount.Parse(conn);
var blobClient = storageAccount.CreateCloudBlobClient();
var container = blobClient.GetContainerReference(containerName);
var blobs = container.ListBlobs();
foreach (var blob in blobs)
{
Console.WriteLine(blob.GetType().ToString());
}
最佳答案
根据MSDN对于 CloudBloblContainer.ListBlobs()
:
The types of objects returned by the ListBlobs method depend on the type of listing that is being performed. If the UseFlatBlobListing property is set to true, the listing will return an enumerable collection of CloudBlob objects. If UseFlatBlobListing is set to false (the default value), the listing may return a collection containing CloudBlob objects and CloudBlobDirectory objects. The latter case provides a convenience for subsequent enumerations over a virtual blob hierarchy.
因此,如果您只需要 blob,则必须将 UseFlatBlobListing
属性选项设置为 true。
var storageAccount = CloudStorageAccount.Parse(conn);
var blobClient = storageAccount.CreateCloudBlobClient();
var container = blobClient.GetContainerReference(containerName);
// ** new code below ** //
BlobRequestOptions options = new BlobRequestOptions();
options.UseFlatBlobListing = true;
// ** new code above ** //
var blobs = container.ListBlobs(options); // <-- add the parameter to overload
foreach (var blob in blobs)
{
Console.WriteLine(blob.GetType().ToString());
}
关于c# - container.ListBlobs 给出了 CloudBlobDirectory 的列表 我期待的是 CloudBlockBlobs 的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25910519/
我正在尝试将多个 CloudBlockBlob 对象连接到 Azure 函数内的单个 CloudBlockBlob 对象中。我尝试将多个对象下载到内存流中,然后将内存流上传到新对象,但该函数在操作完成
我可能在这里做了一些非常明显错误的事情。我正在 Microsoft.WindowsAzure.Storage 中查找 UploadFromStream()、UploadFromFile()。我只能找到
我们有一个文件系统抽象,使我们能够轻松地在本地和云(Azure)存储之间切换。 对于读取和写入文件,我们有以下成员: Stream OpenRead(); Stream OpenWrite(); 我们
如果 blob 已存在,CloudBlockBlob.UploadText 的行为是什么?它会附加到现有的 blob 中吗?或者抛出异常? 最佳答案 如果您对现有 Blob 调用 CloudBlock
我只是想知道,例如,如果我有一个只有 2MB 的文件。它会使用整个 4MB block 还是只使用 2MB? 我上传了一张33MB的图片到stroage,它被分成4MB的 block 吗? 谢谢 最佳
我使用 azure blob 存储来存储 JSON 文件,并在我的代码中使用 C# API 下载它。 当我下载文本文件的内容并尝试使用 JsonConvert 对其进行反序列化时,出现错误(Visua
我正在尝试对 Azure CloudBlockBlob 进行 Moq 并让它返回一个 Stream 以便我可以测试我的 BlobStorage 存储库是否正在处理正确输出。 但不知何故返回的流总是空的
我正在尝试根据存储帐户中公共(public) blob 的元数据创建 VideoBlob 对象(标题、描述、路径)列表。问题是,当我尝试让变量等于 blob 的元数据(“标题”位于 blob 的元数据
我正在为我拥有的 Web API Web 角色实现 Azure 角色内缓存。我希望能够缓存不经常更改的特定 blob 的 BlobReference。这是我用来获取 BlobReference 的代码
有多种方法可以复制 Azure Blob 存储 block 。 StartCopy 有同步和异步版本。还有一个 BeginStartCopy,它也具有完成回调。 BeginStartCopy 方法明确
我正在使用 CloudBlockBlob 对象和 UploadFromFileAsync 方法将文件上传到 Blob 存储。完成后,我将想要调用一项服务,然后该服务告诉多台计算机获取我上传的文件。但是
我正在使用 CloudBlockBlob 对象和 UploadFromFileAsync 方法将文件上传到 Blob 存储。完成后,我将想要调用一项服务,然后该服务告诉多台计算机获取我上传的文件。但是
我有以下代码: public static void UploadStreamToBlob(Stream stream, string containerName, string blobName)
如果您要转移 Stream通过官方 CloudBlockBlob 到 Azure Blob Storage类,如何监控上传/下载本身的进度?我期待该类会发生一些事件,因为它是一个网络 IO 类,但似乎
我一定在这里遗漏了一些明显的东西,但我发现自己无法进行我认为合法的向上转换。我正在尝试将数据上传到 Azure 中的 Blob 存储,并且想使用方法 CloudBlob.UploadText(stri
我目前使用以下方式上传 CloudBlockBlob: CloudBlockBlob.UploadFromStreamAsync 然后我立即在上面设置了一堆用户元数据。 问题是:我有一个事件网格事件,
我希望这个问题的答案很简单,但在查看 Azure Java API 文档后我无法让它工作。 我正在尝试创建一个空的 CloudBlockBlob,稍后会将 block 上传到其中。我之前已经成功上传了
尝试使用 ASP.NET azure SDK 从 Blob 存储下载图像。 我在另一篇文章中读到,DownloadToStream 确实将 blob 分解成更小的 block 并并行下载它们以提高性能
我正在将文件从 Azure 文件共享复制到存储容器中的 CloudBlockBlob。我想在删除原始文件之前验证两个位置的字节(.Properties.Length)是否相同。我认为这将是获得对复制的
下面的代码示例偶尔会导致访问冲突(5,000 到 10,000 条消息中的 1 条)。使用串行 foreach 而不是 Parallel.ForEach 似乎可以规避该问题。 public void
我是一名优秀的程序员,十分优秀!