Добавить заголовки Cache-Control и Expires в BLOB-объекты хранилища Azure

Можно включить строку!

switch(name)
{
  case "Dave":
    return true;
  case "Bob":
    return false;
  default:
    throw new ApplicationException();
}

Очень удобный! и намного более чистый, чем набор если еще операторы

34
задан abatishchev 31 May 2016 в 19:12
поделиться

1 ответ

Вот является обновленная версия потребления ответа Джоэла Филмора WindowsAzure. Память v9.3.3. Обратите внимание, что ListBlobsSegmentedAsync возвращает размер страницы 5,000, который является, почему BlobContinuationToken используется.

    public async Task BackfillCacheControlAsync()
    {
        var container = await GetCloudBlobContainerAsync();
        BlobContinuationToken continuationToken = null;

        do
        {
            var blobInfos = await container.ListBlobsSegmentedAsync(string.Empty, true, BlobListingDetails.None, null, continuationToken, null, null);
            continuationToken = blobInfos.ContinuationToken;
            foreach (var blobInfo in blobInfos.Results)
            {
                var blockBlob = (CloudBlockBlob)blobInfo;
                var blob = await container.GetBlobReferenceFromServerAsync(blockBlob.Name);
                if (blob.Properties.CacheControl != "public, max-age=31536000")
                {
                    blob.Properties.CacheControl = "public, max-age=31536000";
                    await blob.SetPropertiesAsync();
                }
            }               
        }
        while (continuationToken != null);
    }

    private async Task<CloudBlobContainer> GetCloudBlobContainerAsync()
    {
        var storageAccount = CloudStorageAccount.Parse(_appSettings.AzureStorageConnectionString);
        var blobClient = storageAccount.CreateCloudBlobClient();
        var container = blobClient.GetContainerReference("uploads");
        return container;
    }
0
ответ дан 27 November 2019 в 17:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: