C# 使用相同名称c重新提交时为空文件#

C# 使用相同名称c重新提交时为空文件#,c#,azure-storage-blobs,C#,Azure Storage Blobs,我有两种方法可以将文件上载到Blob存储。”UploadFileToContainer“工作正常,我在容器中获取包含数据的文件。问题是“UploadOrReplaceFileToContainer”,其中无法使用file.Position=0,返回以下错误: System.NotSupportedException:“不支持指定的方法。” 有人能帮忙吗 public void UploadFileToContainer(Stream file, string fileName, string u

我有两种方法可以将文件上载到Blob存储。”
UploadFileToContainer
“工作正常,我在容器中获取包含数据的文件。问题是“
UploadOrReplaceFileToContainer
”,其中无法使用file.Position=0,返回以下错误:

System.NotSupportedException:“不支持指定的方法。”

有人能帮忙吗

public void UploadFileToContainer(Stream file, string fileName, string userId)
    {
        string uniqueFileName = GetFileNameUniqueId(fileName);
        BlobClient blob = _container.GetBlobClient(fileName);
        blob.Upload(file);
        file.Position = 0;
        BlobClient blob2 = _containerbackup.GetBlobClient(uniqueFileName);
        blob2.Upload(file);
        _log.LogFileUpload(fileName, uniqueFileName, userId, DateTime.Now);
    }

    public int UploadOrReplaceFileToContainer(Stream file, string fileName, string userId)
    {
        string uniqueFileName = GetFileNameUniqueId(fileName);
        if (_container.GetBlobs().Any(b => b.Name == fileName))
        {
            _container.DeleteBlob(fileName);
        }
        BlobClient blob = _container.GetBlobClient(fileName);
        blob.Upload(file);
        file.Position = 0; //here is where i get the error
        BlobClient blob2 = _containerbackup.GetBlobClient(uniqueFileName);
        blob2.Upload(file);
        int fileUploadId = _log.LogFileUpload(fileName, uniqueFileName, userId, DateTime.Now);
        return fileUploadId;
    }

如果流类型
canseek
type为false,则会出现此错误。您可以创建一个新的
MemoryStream
并将该流复制到
MemoryStream
中,然后查找它或只是设置位置

System.IO.MemoryStream blobstream = new System.IO.MemoryStream();
inputblob.CopyTo(blobstream);            
blobstream.Position = 0;
//blobstream.Seek(0, SeekOrigin.Begin);
blob.Upload(blobstream);

此外,您还可以参考关于这一点的其他讨论:.

签出,以及它的伴生属性,它是什么类型的流?有些流不支持搜索。@ferrub,ant更新了这个问题,你能用我的方式吗?