使用 rest 更新 azure cdn 中的 blob 内容类型

Update blob content type in azure cdn using rest

我已经集成了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 storage explorer 更改它的方法,但是云中有很多 pdf,所以我无法手动更改所有这些文件。

所以您将要遍历容器中的 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);