Azure Доступ к файлам BLOB-объектов и их свойства - Не удается установить свойства - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь получить доступ и установить свойства кэша моих существующих файлов 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";
        }
    }
}

1 Ответ

0 голосов
/ 07 апреля 2020
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);
                    }
                }
...