我想在数据库而不是 URL 上使用图像存储。
在我的服务器端,我使用 PostgreSQL,我在这里读到“bytea”是用于存储文件的建议格式。
在我的移动应用程序方面,数据库是 SQLite。似乎数据存储建议格式有“BLOB” ,如此处所述。
我想知道,到目前为止我还没有清楚地发现,是否有任何从 PostgreSQL 的“bytea”到 SQLite 的“BLOB”的转换?
两者bytea
和BLOB
都是数据库中用于存储原始二进制数据的数据类型。它们不是编码,如 base64 等,因此本身不需要进行转换。
但是,实际上您的应用程序将至少以 5 种形式处理这些数据:
bytea
列BLOB
列数据将依次流经这些形式中的每一种,因此您需要担心的转换不是 PostgreSQL 到 SQLite,而是 PostgreSQL 到/从服务器端语言、服务器端语言到/从 API 编码等等。如果您将服务器更改为使用 MySQL,或者将数据存储在单独的文件中,或者找到一种即时创建它的方法,则您不需要对您的移动应用程序进行任何更改;该过程的两端是完全分开的。
这将与使用正确的函数一样明确地理解编码,就像将文件存储到磁盘可能涉及操作数据的程序环境一样,但您只需编写file.put(data)
或其他任何东西。