C# 如何以编程方式更新azure blob url

C# 如何以编程方式更新azure blob url,c#,azure,azure-storage,azure-storage-blobs,C#,Azure,Azure Storage,Azure Storage Blobs,我的情况是,azure存储中有1000个blob,这些blob是带有url的图片,其中有空间,这是一个问题。 因此,作为一项措施,我们希望更新blob uri,并删除其中每个具有一个的空格。 我知道如何获取blob,或者我会弄明白,但无法理解在获取blob后如何更新uri这里是获取blob的当前代码 CloudBlobContainer container = GetContainerReference('containername'); var blobs=co

我的情况是,azure存储中有1000个blob,这些blob是带有url的图片,其中有空间,这是一个问题。 因此,作为一项措施,我们希望更新blob uri,并删除其中每个具有一个的空格。 我知道如何获取blob,或者我会弄明白,但无法理解在获取blob后如何更新uri这里是获取blob的当前代码

        CloudBlobContainer container = GetContainerReference('containername');
        var blobs=container.ListBlobs().Select(p=>p.Uri.ToString().Contains(' '));
        foreach (CloudBlob item in blobs)
        {

        }
没有提供允许您直接更改blob的URI的方法。但是,您仍然可以将blob复制到URI中没有空格的新blob,然后删除旧blob

CloudBlobContainer container = GetContainerReference('containername');
var blobs = container.ListBlobs().Select(p => p.Uri.ToString().Contains(' '));
foreach (CloudBlob oldBlob in blobs)
{
    var newBlobName = oldBlob.Name.Replace(" ", String.Empty);
    var newBlob = container.GetBlobReference(newBlobName);
    newBlob.CopyFromBlob(oldBlob);

    oldBlob.Delete();
}

假设可以做到这一点,那么仅仅从blob的名称(或URI)中删除空格不会使blob无法访问吗?blob存储中存储的blob在其名称/URI?URI中有一个空格。我同意。可能删除并创建其副本是解决方案。。