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()));
}
我有上传图片的代码
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()));
}