Azure 将 CloudBlockBob URL 更改为不同于名称

Azure change CloudBlockBob URL to be different than name

我有上传图片的代码

        var blobClient = _storageAccount.CreateCloudBlobClient();
        var container = blobClient.GetContainerReference(blobName);

        // Create a unique name for the images we are about to upload
        var file = String.Format("{0}-{1}{2}", fileName, Guid.NewGuid(), Path.GetExtension(fileToUpload.FileName));

        // Upload image to Blob Storage
        var blockBlob = container.GetBlockBlobReference(file);
        blockBlob.Properties.ContentType = fileToUpload.ContentType;
        await blockBlob.UploadFromStreamAsync(fileToUpload.InputStream);

        fullPath = blockBlob.Uri.ToString();

现在在 blob 中我有这个信息 Name: test+GUID / URL: test+GUID

如何保存在 blob Name: test / URL: GUID 中,所以在 [=27= 中命名]不会显示?

让 blob 名称不同于 URL 将无法正常工作。它类似于您的 windows 路径,类似于您的文件名,并且两者不能不同。

但考虑到您的要求,在 blob 名称和 url 中仅使用 GUID,这样文件的实际名称对 URL 是隐藏的。并尝试使用 Blob 元数据来存储和获取实际名称。

// Get a reference to a blob.
CloudBlob blob = blobClient.GetBlobReference("mycontainer/myblob.txt");

// Populate the blob's attributes.
blob.FetchAttributes();

// Enumerate the blob's metadata.
foreach (var metadataKey in blob.Metadata.Keys)
{
Console.WriteLine("Metadata name: " + metadataKey.ToString());
Console.WriteLine("Metadata value: " +        
blob.Metadata.Get(metadataKey.ToString()));
}