Обращение к файлам, находящиеся на сервере PotgreSQL

kirillivanov
Дата: 23.05.2015 16:01:30
Добрый день. Я новичек в изучении данной СУБД. Пишу программу на С#, которая взаимодействует с БД в Postgres. хотелось бы узнать как обратиться к файлам, которые находятся на компьютере, на котором установлен сам сервер Postgres. Например таблица хранит путь к файлу на компьютере, а в созданном приложении, обращаясь к этой таблице, а именно к конкретной записи, я открываю этот файл. заранее, большое спасибо.
Winnipuh
Дата: 23.05.2015 16:53:30
kirillivanov
Добрый день. Я новичек в изучении данной СУБД. Пишу программу на С#, которая взаимодействует с БД в Postgres. хотелось бы узнать как обратиться к файлам, которые находятся на компьютере, на котором установлен сам сервер Postgres. Например таблица хранит путь к файлу на компьютере, а в созданном приложении, обращаясь к этой таблице, а именно к конкретной записи, я открываю этот файл. заранее, большое спасибо.


вы сами хорошо представляете свою цель: что, как и где вы хотите сделать?
RUS 21
Дата: 25.05.2015 10:17:09
kirillivanov,

небольшой функционал дает adminpack. Посмотрите, может вам его и хватит.
Ещё как вариант, из вашей C# программы после получения пути к файлу соединяться непосредственно к северу БД (ssh-сессия например).
ОКТОГЕН
Дата: 25.05.2015 10:22:42
RUS 21, Ставим на сервер untrusted plperl,
делаем функции-обвязки для доступа к файлам на сервере, где установлен sql.
И всё. Можно стрелять себе в ногу жить поживать.
До большого факапа, естественно)))
ОКТОГЕН
Дата: 25.05.2015 10:27:45
kirillivanov
Добрый день. Я новичек в изучении данной СУБД. Пишу программу на С#, которая взаимодействует с БД в Postgres. хотелось бы узнать как обратиться к файлам, которые находятся на компьютере, на котором установлен сам сервер Postgres. Например таблица хранит путь к файлу на компьютере, а в созданном приложении, обращаясь к этой таблице, а именно к конкретной записи, я открываю этот файл. заранее, большое спасибо.

Кстати, что мешает вам создать отдельное табличное пространство на подходящем носителе(отдельный винт, рейд,да хоть SSD тот
же) и воспользоваться типом bytea? У вас файлы больше гига?
RUS 21
Дата: 25.05.2015 10:32:27
ОКТОГЕН
RUS 21, Ставим на сервер untrusted plperl

Точно, забыл. Пробовал что-то сделать на Питоне, вроде бы не получилось, но и не сильно надо было..
ОКТОГЕН
Дата: 25.05.2015 10:58:27
RUS 21,
ещё есть large objects.
Но интерфейс доступа, мягко говоря, специфический, плюс нельзя вынести в отдельное табличное пространство.
Так что всё, что не вмещается в bytea 1 гиг - имеет смысл хранить на диске поближе к серверу приложений,
а в БД - ссылку с именем файла( какой-нибудь UUID) соответственно. Тем более, что есть такой тип данных.
Ещё вариант для фанатов консистентности и единообразия - разбивать на части.
CREATE TABLE table_bin(id UUID, num_part INTEGER, bin_data bytea,base_name TEXT);
А потом тупо склеивать.
ОКТОГЕН
Дата: 25.05.2015 11:51:09
Кстати, может кто в курсе планов насчёт LOB/bytea?
Что вообще будут менять?
Serik Akhmetov
Дата: 26.05.2015 09:34:53
см
http://www.sql.ru/forum/1101976/poluchenie-fayla-iz-bd
http://www.sql.ru/forum/945203/hranenie-faylov
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=345239&msg=3212584

нетленным творениям скоро десять лет, не знаю, насколько актуально