我正在重写我的C#代码以使用Azure Blob存储而不是文件系统。到目前为止,重写正常文件操作的代码没有问题。但是我有一些使用来自流的异步写入的代码:
using (var stream = await Request.Content.ReadAsStreamAsync())
{
FileStream fileStream = new FileStream(@"c:\test.txt", FileMode.Create, FileAccess.Write, FileShare.None);
await stream.CopyToAsync(fileStream).ContinueWith(
(copyTask) =>
{
fileStream.Close();
});
}
我需要更改上面的设置来使用Azure CloudBlockBlob或CloudBlobStream --但是我找不到一种方法来声明copyToAsync可以写入的流对象。
发布于 2017-11-09 18:04:48
您可能希望在CloudBlockBlob上使用UploadFromStreamAsync
方法。下面是一个这样做的示例代码(虽然我还没有尝试运行此代码):
var cred = new StorageCredentials(accountName, accountKey);
var account = new CloudStorageAccount(cred, true);
var blobClient = account.CreateCloudBlobClient();
var container = blobClient.GetContainerReference("container-name");
var blob = container.GetBlockBlobReference("blob-name");
using (var stream = await Request.Content.ReadAsStreamAsync())
{
stream.Position = 0;
await blob.UploadFromStreamAsync(stream);
}
https://stackoverflow.com/questions/47198544
复制相似问题