我将尝试在数据库中存储二进制数据。(在 Heroku 上使用 PostgreSQL)
我知道在 PostgreSQL 中有两种不同的存储二进制数据的方式:blob 和 bytea。
当我在迁移中创建表时,
create_table :binaries do |t|
t.binary :data
end
它在数据库中创建一个类型为bytea的列。
我的问题是...如何创建一个blob类型的记录?
为什么我问呢?似乎当我将一个10字节的文件上传到heroku时,它会将其存储为十六进制值的字符串,并在其前面加上“e”..所以我的10个字节变成了21个。我的10兆文件将变成20兆(还有一个字节),等等...
现在这让我很烦恼,但由于我真的不关心性能。(PM已经打败了我),这不是我最担心的问题。
真正困扰我的是;当我读取数据库的内容时,我得到的是21个字节,而不是10个。那是无法使用的。 所以我的问题又来了...如何在rails/postgresql/heroku环境中创建一个BLOB列?