根據我們系統託管的環境,它將使用不同的「文件系統」來管理用戶上傳的文件。例如,在我們的開發環境中,我們使用Windows文件系統,但在生產中我們使用Azure blob存儲。IFileRepositoryProvider處理上傳的文件
使用提供程序模型,我創建了以下接口:
public interface IFileRepositoryProvider
{
void SaveFile(string fileName, Stream fileStream);
void DeleteFile(string fileName);
bool Exists(string fileName);
Stream GetStream(string fileName);
}
- 的文件是如何保存/刪除/等細節完全由
IFileRepositoryProvider
具體實現封裝。 - Azure blob存儲有一些限制。我不一定會爲文件提供一個直接的「URI」,就像我們可以將它放在Web服務器上的某個虛擬目錄中一樣。 因此,我決定完全使用流。根據需要由客戶端代碼來處理流。
問題:
- 將
FileStream
或MemoryStream
更好嗎? - 將文件暴露爲字節數組有什麼好處嗎?
- 你能看到這種方法的嚴重缺點嗎?
在Windows Azure中運行時,BLOB將存儲在公共容器還是私有? – MikeWo
私人容器。 – davenewza