我一直在寻找有关如何使用PostgreSQL pg_read_binary_file()
功能的文档。(google,stackoverflow等)。
我能找到的唯一有意义的事情是官方文档中的this page。
每次我尝试使用此功能时都会出错。
例如:
SELECT pg_read_binary_file('/some/path/and/file.gif');
ERROR: absolute path not allowed
或
SELECT pg_read_binary_file('file.gif');
ERROR: could not stat file "file.gif": No such file or directory
我是否需要将我的文件放在Postgres的特定目录中才能访问它?如果是这样的目录?
如果重要,我正在查看此函数的原因是因为我试图在没有doing crazy things的情况下将文件插入数据库。
答案 0 :(得分:4)
如@a_horse_with_no_name和@guedes所述,解决方案是确保上传的文件位于PGDATA目录中的服务器上。
postgres documentation确实将文件位置说明为必填项。
另外,我从另一个目录到PGDATA目录创建了一个符号链接,这样我就不会打扰任何postgres数据结构。这似乎运作良好,我不必执行上述任何crazy things。