使用 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);
我已经集成了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);