我使用stream for file:内存流,流读取或文件流,如
"a-b".replace(/-(\w)/g, (match, p1) => p1.toUpperCase())
// "aB"
我希望将它发送到blob存储,此时我的blob是空的,是因为按流读取文件还是引用其他问题,例如blob上的miss配置或CloudStorageAccount连接字符串。
答案 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);