流读取可以生成并发送Null到blob存储

时间:2015-12-26 20:11:18

标签: c# azure azure-storage azure-web-sites azure-storage-blobs

我使用stream for file:内存流,流读取或文件流,如

"a-b".replace(/-(\w)/g, (match, p1) => p1.toUpperCase())
// "aB"

我希望将它发送到blob存储,此时我的blob是空的,是因为按流读取文件还是引用其他问题,例如blob上的miss配置或CloudStorageAccount连接字符串。

2 个答案:

答案 0 :(得分:2)

在开始从该流上传到Blob之前,请确保您的信息流位于0。如上面的评论所述,您可以尝试以下方法:

ms.Position = 0

ms.Seek(0, SeekOrigin.Begin)

答案 1 :(得分:1)

只需使用以下代码即可。无需转换内存流,您可以使用Blob.UploadfromStream方法将流传递到blob存储。

StorageCredentials creds = new StorageCredentials(
                ConfigurationManager.AppSettings["accountName"],
                ConfigurationManager.AppSettings["accountKey"]
                );
            CloudStorageAccount account = new CloudStorageAccount(creds, useHttps: true);
            CloudBlobClient client = account.CreateCloudBlobClient();
            CloudBlobContainer contain = client.GetContainerReference("your container name");
            contain.CreateIfNotExists();
    CloudBlockBlob blob = contain.GetBlockBlobReference("your blob name");
    using (var stream = System.IO.File.OpenRead("your file"))
                    blob.UploadFromStream(stream);