我正在尝试访问和设置现有blob文件的缓存属性,但是在尝试设置属性时为404。它可以很好地调用FetchAttributes();但我无法弄清楚我在做什么错:
foreach (var b in blobs)
{
CloudBlobContainer container = bh.GetEntFileContainer(b.Id, true);
var blobFiles = container.ListBlobs(null, true);
foreach (var file in blobFiles)
{
CloudBlob blob = new CloudBlob(file.Uri);
try
{
blob.FetchAttributes();
// set cache-control header if necessary
if (blob.Properties.CacheControl != "max-age=604800, public")
{
blob.Properties.CacheControl = "max-age=604800, public";
blob.SetProperties(); //404 here.
}
}
catch (Exception e)
{
string a = "404, doesn't exist";
}
}
}
foreach (var b in blobModels)
{
var cloudBlobContainer = bh.GetEntFileContainer(b.Id, true);
IEnumerable<IListBlobItem> blobInfos = cloudBlobContainer.ListBlobs(useFlatBlobListing: true);
foreach (var blobInfo in blobInfos)
{
try
{
CloudBlockBlob blockBlob = (CloudBlockBlob)blobInfo;
var blob = cloudBlobContainer.GetBlobReferenceFromServer(blockBlob.Name);
blob.FetchAttributes();
// set cache-control header if necessary
if (blob.Properties.CacheControl != newCacheSettings)
{
blob.Properties.CacheControl = newCacheSettings;
blob.SetProperties();
}
}
catch (Exception ex)
{
// Console.WriteLine(ex.Message);
}
}