根据我们系统托管的环境,它将使用不同的“文件系统”来管理用户上传的文件。例如,在我们的开发环境中,我们使用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