我們是Windows Azure的新手,在開發sitefinity應用程序時使用Windows azure存儲blob對象,但是通過從Visual Studio發佈到Azure上載到此存儲的blob文件僅使用文件名上傳文件,不保留前綴文件夾名稱和斜線。因此,我們必須在Windows Azure管理門戶上手動重命名所有文件,並將文件夾名稱和斜線放在每個文件名的開頭,以便訪問這些圖像的頁面可以正確顯示圖像,否則圖像不會顯示,因爲路徑不正確。 儘管在sitefinity管理面板中,當我們將這些圖像/ blob文件上載到這些頁面中時,我們會將它們上載到一個文件夾中,並且我們已經配置好利用sitefinity來使用azure存儲而不是數據庫。 請檢查附件以查看屏幕截圖。 請幫我解決這個問題。 Blob文件必須手動重命名爲包含父文件夾路徑
0
A
回答
1
幾件事我想先提:
- 的Windows Azure不支持重命名功能。重命名blob功能=複製blob,然後刪除blob。
- 複製blob操作是異步的,所以您必須等待複製操作在刪除blob之前完成。
- Blob存儲本身不支持文件夾層次結構。正如你可能已經發現的那樣,你通過在你想要的文件夾名稱(比如圖像)前加上一個blob名稱(比如logo.png)並用斜線(/)分開它們來創建一個文件夾的幻覺,這樣你的blob名字就變成了圖像/logo.png。
現在來到您的問題。不用說手動重命名blob將是一個繁瑣的練習。我會建議使用存儲管理工具來做到這一點。一個這樣的例子是來自Cerebrata的Azure Management Studio
。如果您使用該工具,基本上可以做的是在容器中創建一個空文件夾,然後將這些文件移動到該文件夾中。對我而言,這將是達到目標的最快方式。
如果你想編寫一些代碼來做到這一點,這裏有步驟,你將需要:
- 首先你將會列出所有的blob的blob容器。
- 接下來,你將遍歷這個列表。
- 對於每個blob(我們稱之爲源blob),您將獲得其名稱並預先設置所需的文件夾名稱,並創建一個對象的實例。
- 接下來,您將在這個新的blob上使用
StartCopyFromBlob
在該blob上啓動一個副本blob操作,其中源是您的源blob。 - 您需要等待複製操作完成。一旦複製操作完成,您可以安全地刪除源blob。
P.S.我會寫一些代碼,但不幸的是我被別的東西卡住了。我稍後可能會寫些東西(但請不要屏住呼吸:))。
相關問題
- 1. 重命名文件夾路徑
- 2. htaccess重命名文件夾路徑
- 3. 在Linux中重命名文件時包含文件夾名稱
- 4. 將文件夾內的文件批量重命名爲父文件夾名稱
- 5. filepicker.io上傳的路徑是否必須包含現有的文件夾?
- 6. 用父路徑移動文件夾Windows
- 7. Java從命令行運行:類路徑包含文件夾和子文件夾
- 8. Java:在文件對象的文件名中包含文件夾路徑
- 9. Powershell重命名包含重複模式(必須首先刪除)的文件
- 10. 將子文件夾中存在的同名文件重命名爲包含子文件夾名稱
- 11. .BAT - 將字符串%分割爲文件名+文件路徑+文件的文件夾+文件的父文件夾
- 12. 包含子文件夾的文件夾,包含多個文件(.xlsm,.pdf,.txt)。如何將.pdf文件重命名爲子文件夾的名稱?
- 13. 如何從文件路徑獲取父文件夾的名稱?
- 14. 頭文件包含路徑
- 15. 根據文件夾父名稱重命名文件
- 16. 重命名文件取的名字在父文件夾的
- 17. 如何在conf文件夾外包含路徑文件?
- 18. 重命名文件路徑和Doxygen
- 19. 項目組織 - 文件路徑和文件夾默認命名
- 20. 批量重命名文件以包含linux中的文件夾/目錄名稱
- 21. 在Python中,批量重命名包含文件夾名稱的文件
- 22. 重命名包含'©'字符的文件
- 23. 如何重命名在另一個路徑中的文件夾?
- 24. 爲什麼在使用命名空間時必須包含PHP文件?
- 25. 重命名父文件夾中的文件?
- 26. BASH - 自動將文件重命名爲其文件夾
- 27. htaccess的重寫文件路徑的文件夾路徑
- 28. 使用父文件夾/目錄名稱作爲變量重命名文件
- 29. 批處理文件重命名文件並給出父文件夾的名稱
- 30. 查找路徑父文件夾
真棒。非常感謝這一點。將根據您的帖子回覆一次,並且還會考慮管理工作室。 – user1400290