gpt4 book ai didi

c# - 是否有一个存储库可以抽象出 Azure、S3 等?

转载 作者:太空狗 更新时间:2023-10-29 19:42:33 25 4
gpt4 key购买 nike

我正在开发一个支持在云(Amazon 或 Azure)中运行的应用程序。我需要的一个组件是围绕存储 API(Blob 和队列)的抽象。我可以编写一个抽象层,但最终仍然会产生大量依赖项(所有 Azure 和 Amazon 库)。我想要的是一个提供纯HTTP访问的组件,所以我不需要任何外部依赖。这样的野兽存在吗?

编辑

到目前为止,我所做的是构建一个接口(interface),抽象出 blob 上的基本操作。我最终得到的结果类似于以下内容:

public interface IBlobService {
Task<Stream> DownloadBlob(string container, string blob);
IEnumerable<string> ListBlobs(string container);
void PutBlob(string container, string blob, Stream data);
}

我知道不同的服务有不同的行为,但都支持一组基本的 CRUD 操作。我发现我不断添加其他方法来改变调用行为。例如,除了

void PutBlob(string container, string blob, Stream data);

我最终也需要

void PutBlob(string container, string blob, byte[] data);

在两个服务中构建第 n 个方法后,我意识到一定有人已经这样做了。鉴于两者都只是各自 HTTP 接口(interface)的包装器,我正在寻找一个提供这些操作抽象的库。就 HTTP 而言,发送字节数组和流之间的差异为零,但每个服务都需要它自己的风格( header 、编码、HMAC 等)。

我想要的与 ODBC 为数据库提供的类似 - 一个提供一组通用功能的 API,同时承认支持平台存在差异。我希望这能够充分缩小请求范围。

谢谢,埃里克

最佳答案

库 TwentyTwenty.Storage 是 Blob 存储的抽象。它定义了 Azure、Amazon S3、Google Cloud 存储和本地文件系统的接口(interface)和一些实现。更多信息参见项目github:TwentyTwenty.Storage

它适用于.net 4.5和.net core (netstandard 1.3),并且可以通过nuget安装。

关于c# - 是否有一个存储库可以抽象出 Azure、S3 等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29804860/

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