Обновите тип содержимого BLOB-объектов в Azure CDN, используя rest - PullRequest
0 голосов
/ 20 марта 2019

Я интегрировал azure cdn и загрузил много pdf файлов, но все они имеют тип контента octet-stream, потому что изначально я не использовал x-ms-blob-content-type, теперь я установил его

 headers.Add("x-ms-blob-content-type", "application/pdf");

Таким образом, новые файлы загружаются с правильным типом содержимого.Мой вопрос касается всех файлов PDF, которые были загружены до исправления.Я хочу изменить их тип контента на application/pdf.Есть ли способ сделать это с помощью rest api?

Я нашел способ изменить его с помощью обозревателя хранилищ Azure, но в облаке много pdf-файлов, поэтому я не могу изменить их все вручную.

1 Ответ

1 голос
/ 20 марта 2019

Таким образом, вы захотите просмотреть циклы по BLOB-объектам в контейнере, и если расширение - .pdf, то вы хотите установить тип содержимого «application / pdf».

Код ниже должен указать вас направильное направление.

      // Storage credentials
        StorageCredentials credentials = new StorageCredentials("accName", "keyValue");
        CloudStorageAccount storageAccount = new CloudStorageAccount(credentials, true);
        CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
        CloudBlobContainer container = blobClient.GetContainerReference("theContainer");

        // Continuation Token
        BlobContinuationToken token = null;

        do
        {

            var results = await container.ListBlobsSegmentedAsync(null, true, BlobListingDetails.All,
                null, token, null, null);

            // Cast blobs to type CloudBlockBlob
            var blobs = results.Results.Cast<CloudBlockBlob>().ToList();

            foreach (var blob in blobs)
            {
                if (Path.GetExtension(blob.Uri.AbsoluteUri) == ".pdf")
                {
                    blob.Properties.ContentType = "application/pdf";
                }

                await blob.SetPropertiesAsync();
            }

        } while (token != null);
...