gpt4 book ai didi

c# - 最大限度地减少迁移到 Azure Blob 存储对代码的影响

转载 作者:行者123 更新时间:2023-12-02 06:16:29 25 4
gpt4 key购买 nike

我正在尝试将相当复杂的应用程序迁移到 Windows Azure。在辅助角色和 Web 角色中,应用程序在许多情况下会将文件保存到本地文件系统。

这是一个例子:

string thumbnailFileName = System.IO.Path.GetDirectoryName(fileName) + "\\" + "bthumb_" + System.IO.Path.GetFileName(fileName);

thumbnail.Save(thumbnailFileName);

另一个例子:

 using (System.IO.StreamWriter file = System.IO.File.AppendText(GetCurrentLogFilePath()))
{
string logEntry = String.Format("\r\n{0} - {1}: {2}", DateTime.Now.ToString("<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="0e77777777204343206a6a4e4646206363207d7d" rel="noreferrer noopener nofollow">[email protected]</a>"), type.ToString(), message);
file.Write(logEntry);

file.Close();
}

在这些示例中,我们将图像和日志文件保存到 app.config 中指定的文件位置。这是一个例子:

<add key="ImageFileDirectory" value="C:\temp\foo\root\auth\inventorypictures"/>

我希望尽可能少地更改代码来支持 Azure blob 存储,以防我们决定返回到更传统的托管环境,更广泛地减少产生意外问题的可能性。

基于此post我认为 Azure Drive 不是最好的选择。

有人可以引导我朝正确的方向前进吗(最好有一个例子)?我认为最好的解决方案是只需要更改我的配置文件的解决方案。但我猜这不太现实。

最佳答案

确实,您希望使用 Azure Blob 存储来保存文件。

对于您的编码问题,请考虑创建一个接口(interface),将其命名为 IFileStore:

public interface IFileStore
{
void Save(string filePath, byte [] contents);
byte [] Read(string filePath);
}

然后创建 2 个提供程序类,一个用于文件系统,一个用于 Azure Blob 存储。

文件系统提供者可以像这样实现保存功能:

    public void Save(string filePath, byte [] content)
{
File.WriteAllBytes(filePath, content);
}

public byte [] Read(string filePath)
{
return File.ReadAllBytes(filePath);
}

对于 Azure Blob 提供程序,您必须根据传入的 filePath 派生存储路径。

关于c# - 最大限度地减少迁移到 Azure Blob 存储对代码的影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6779907/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com