我僅使用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