【问题标题】:Implementation independent Storage Access [closed]实现独立的存储访问[关闭]
【发布时间】:2016-11-21 08:59:11
【问题描述】:

我阅读了这个页面,它解释了如何从 python 访问谷歌存储。

https://cloud.google.com/appengine/docs/flexible/python/using-cloud-storage

我不希望我的代码与云存储提供商联姻。

如果我使用 amazon、google 或自定义存储应该是配置并且应该在我的源代码之外处理。

有没有办法编写使用云存储的 python 代码,但这是以独立于实现的方式实现的?

【问题讨论】:

    标签: python google-app-engine storage platform-independent


    【解决方案1】:

    不幸的是,今天不可能让您的代码完全独立于云存储的类型,主要是因为每个云存储提供商使用不同类型的配置、身份验证、访问库等。

    但您可以做的是在特定于每个提供者的薄层中包含此类依赖项,隐藏在您将创建的通用、更通用的 API 后面。

    您的绝大多数代码都将使用此通用 API,并且在您添加、删除或更改实际存储提供程序时不必进行更改。

    【讨论】:

    • 感谢您的回答。 AFAIK 存储 API 非常简单:CRUD(创建、读取、更新、删除)。是的,我可以创建一个薄层来保持我的代码干净。我不确定“不可能”是否真的是真的。对于关系数据库,这是可能的。如果你只做基本的 SQL,你的代码是可移植的,配置确实定义了具体的连接。
    • 嗯,您的问题提到了存储,而不是 SQL(我承认,从根本上讲,它们可以被视为相同的东西,但在实现级别它们不是)。以 GCS 为例,您必须使用特定于 GCS 的库的 open() 来打开文件,而不能只使用文件名调用 python 的 open()。反之亦然:您不能将 GCS 的 open() 与常规文件系统文件一起使用,更不用说亚马逊或其他一些非 GCS 云存储,需要一个适应层来适应这种差异。这就是我的“不可能”的来源。
    • 是的,这个问题是关于存储 API 的。我只是将它与 SQL 进行比较。我猜两到五年内会有独立于实现的 API。
    • 确实,未来标准化的云存储访问是一种明显的可能性:)
    猜你喜欢
    • 2018-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-29
    相关资源
    最近更新 更多