我仅使用Microsoft Azure存储,并且不使用其他Azure产品/服务。我通过ftp类型客户端(GoodSync)将文件上传到我的存储blob,并且我需要在已经位于Blob中后根据文件扩展名更改所有文件的内容类型。我环顾四周,并没有发现如何在没有使用PowerShell的VPS之一的情况下执行此操作。我有什么选择,我该如何做到这一点?我真的需要一步一步来。更改Azure存储Blob中文件的内容类型
0
A
回答
0
我最近有同样的问题,所以我创建了一个简单的工具类,以“修复”基于文件扩展名的内容类型。您可以阅读详细信息here
您需要做的是分析Azure存储容器中的每个文件,并根据字典更新ContentType,以便为每个文件扩展名定义适合的MIME类型。
// Connect to your storage account
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(storageConnectionString);
// Load Container with the specified name
private CloudBlobContainer GetCloudBlobContainer(string name)
{
CloudBlobClient cloudBlobClient = _storageAccount.CreateCloudBlobClient();
return cloudBlobClient.GetContainerReference(name.ToLowerInvariant());
}
// Parse all files in your container and apply proper ContentType
private void ResetContainer(CloudBlobContainer container)
{
if (!container.Exists()) return;
Trace.WriteLine($"Ready to parse {container.Name} container");
Trace.WriteLine("------------------------------------------------");
var blobs = container.ListBlobs().ToList();
var total = blobs.Count;
var counter = 1;
foreach (var blob in blobs)
{
if (blob is CloudBlobDirectory) continue;
var cloudBlob = (CloudBlob)blob;
var extension = Path.GetExtension(cloudBlob.Uri.AbsoluteUri);
string contentType;
_contentTypes.TryGetValue(extension, out contentType);
if (string.IsNullOrEmpty(contentType)) continue;
Trace.Write($"{counter++} of {total} : {cloudBlob.Name}");
if (cloudBlob.Properties.ContentType == contentType)
{
Trace.WriteLine($" ({cloudBlob.Properties.ContentType}) (skipped)");
continue;
}
cloudBlob.Properties.ContentType = contentType;
cloudBlob.SetProperties();
Trace.WriteLine($" ({cloudBlob.Properties.ContentType}) (reset)");
}
}
_contentTypes
是包含每个文件的扩展名相应的MIME类型的字典:
private readonly Dictionary _contentTypes = new Dictionary() { {".jpeg", "image/jpeg"}, {".jpg", "image/jpeg" } };
内容类型和源代码的全部列表可以发现here。
+0
有一种内置于.net的方法来获取内容类型。 System.Web.MimeMapping.GetMimeMapping(string fileName); – mark 2016-10-06 19:10:37
相关问题
- 1. Azure存储BLOB内容类型转换
- 2. 如何存档Azure blob存储内容?
- 3. 我可以压缩存储Etag,修改和内容类型的Azure Blob
- 4. Azure存储和Oracle Blob内容
- 5. Azure Blob存储内容长度
- 6. 删除Azure Blob存储容器内的文件夹
- 7. Azure Blob存储库更改了吗?
- 8. Azure Blob存储 - $ logs中的listblobs容器
- 9. 从Azure blob存储中读取文件
- 10. 从azure blob存储内存流中获取wave文件
- 11. Azure的Blob存储
- 12. 在windows中存储blob azure存储其他数据,如数据库中的内容类型
- 13. 设置存储在Blob上的媒体文件的内容类型
- 14. Azure - 在BLOB存储中更新现有的xml文件
- 15. 上传存储在Azure Blob存储中的文件
- 16. Azure Blob存储列表Blob
- 17. Azure blob存储 - blob策略
- 18. Azure blob存储文件路径限制
- 19. 将文件上传到Azure Blob存储
- 20. FileUpload文件到Azure Blob存储
- 21. 从Azure Blob存储使用ascx文件
- 22. 从Azure Blob存储下载文件
- 23. 将文件上传到Azure Blob存储
- 24. Azure Blob vs文件与磁盘存储
- 25. Azure Blob存储打印所有文件
- 26. Azure如何将高级blob存储更改为标准blob存储帐户?
- 27. Azure DocumentDB和Azure Blob存储
- 28. Azure blob存储SAS
- 29. node.js azure存储blob
- 30. 在Azure Blob存储上下载容器
您使用哪种编程语言?查找语言特定的存储客户端库并查找更新blob属性的函数(您希望更新的属性是Content-Type)。您可以从计算机运行代码。无需获得其他Azure服务。 – 2014-12-02 15:20:27
我使用ASP,但随着一步一步的指示,我可以做任何事情。我是电脑爱好者,只需要在计算机上执行/运行/安装的指示。 – user2403260 2014-12-02 15:38:08
我认为这将是太多解释。我认为,如果您使用其中一个可用存储资源管理器并更改blob的内容类型属性或者搜索“azure blob change content type”,并且我相信您会找到大量示例,那将会更容易。 – 2014-12-02 15:45:18