Thread: management of BLOBs
Я должен хранить файлы (BLOB-ы) с 3 параметрами и контролировать доступ пользователей к ним. Общий объем файлов 2,5 Гб, что меньше, чем 32 Тб (максимальный размер таблицы в pg). 66% файлов имеют размер около 10-20 Kb, 33% файлов имеют размер около 150-200 Kb, что меньше, чем 1Гб (максимальный размер поля в pg). Я внимательно изучил http://pgfoundry.org, http://gborg.postgresql.org, но не нажел подходящего инструмента. Посоветуйте какой-нибудь бесплатный софт. I must to store files (BLOB) with 3 string parameters and control access of users to them. Total size of files, equal to 2.5Gb, is much less, than 32TB (max size of table in pg). 66% of files have size nearly 10-20 Kb, 33% of files have size hearly 150-200 Kb, that is less, than 1GB (max size of field in pg). I have attentively stydied http://pgfoundry.org, http://gborg.postgresql.org, but i don't find suitable instrument for this. Prompt my any _free_ soft. Dmitry Turin SQL4 (4.3.0) http://sql40.chat.ru HTML6 (6.4.1) http://html60.chat.ru Unicode2 (2.1.0) http://unicode2.chat.ru Computer2 (2.0.3) http://computer20.chat.ru
Не совсем понятно, что конкретно должен уметь делать искомый инструмент? Однако, в вашей ситуации, меня бы больше интересовал другой, очень популярный вопрос: "А где лучше хранить эти файлы: именнокак BLOB-ы в БД или же в виде файлов?" ;-))) -----Original Message----- From: pgsql-ru-general-owner@postgresql.org [mailto:pgsql-ru-general-owner@postgresql.org] On Behalf Of Dmitry Turin Sent: Wednesday, September 26, 2007 10:38 AM To: pgsql-ru-general@postgresql.org Subject: [pgsql-ru-general] management of BLOBs Я должен хранить файлы (BLOB-ы) с 3 параметрами и контролировать доступ пользователей к ним. Общий объем файлов 2,5 Гб, что меньше, чем 32 Тб (максимальный размер таблицы в pg). 66% файлов имеют размер около 10-20 Kb, 33% файлов имеют размер около 150-200 Kb, что меньше, чем 1Гб (максимальный размер поля в pg). Я внимательно изучил http://pgfoundry.org, http://gborg.postgresql.org, но не нажел подходящего инструмента. Посоветуйте какой-нибудь бесплатный софт. I must to store files (BLOB) with 3 string parameters and control access of users to them. Total size of files, equal to 2.5Gb, is much less, than 32TB (max size of table in pg). 66% of files have size nearly 10-20 Kb, 33% of files have size hearly 150-200 Kb, that is less, than 1GB (max size of field in pg). I have attentively stydied http://pgfoundry.org, http://gborg.postgresql.org, but i don't find suitable instrument for this. Prompt my any _free_ soft. Dmitry Turin SQL4 (4.3.0) http://sql40.chat.ru HTML6 (6.4.1) http://html60.chat.ru Unicode2 (2.1.0) http://unicode2.chat.ru Computer2 (2.0.3) http://computer20.chat.ru ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match
Sergey, ZS> Не совсем понятно, что конкретно должен уметь делать искомый инструмент? Пока только предоставлять или не предоставлять доступ к файлам. ZS> А где лучше хранить эти файлы: именно как BLOB-ы в БД или же в виде файлов? Наши менеджеры собираются потребовать административную надстройку над этим хранилицем. ZS> Я должен хранить файлы (BLOB-ы) с 3 параметрами ZS> и контролировать доступ пользователей к ним. ZS> Общий объем файлов 2,5 Гб, что меньше, чем 32 Тб ZS> (максимальный размер таблицы в pg). ZS> 66% файлов имеют размер около 10-20 Kb, ZS> 33% файлов имеют размер около 150-200 Kb, что меньше, чем 1Гб ZS> (максимальный размер поля в pg). ZS> Я внимательно изучил http://pgfoundry.org, http://gborg.postgresql.org, ZS> но не нажел подходящего инструмента. ZS> Посоветуйте какой-нибудь бесплатный софт. ZS> I must to store files (BLOB) with 3 string parameters ZS> and control access of users to them. ZS> Total size of files, equal to 2.5Gb, is much less, than 32TB ZS> (max size of table in pg). ZS> 66% of files have size nearly 10-20 Kb, ZS> 33% of files have size hearly 150-200 Kb, that is less, than 1GB ZS> (max size of field in pg). ZS> I have attentively stydied http://pgfoundry.org, http://gborg.postgresql.org, ZS> but i don't find suitable instrument for this. ZS> Prompt my any _free_ soft. Dmitry Turin SQL4 (4.3.0) http://sql40.chat.ru HTML6 (6.4.1) http://html60.chat.ru Unicode2 (2.1.0) http://unicode2.chat.ru Computer2 (2.0.3) http://computer20.chat.ru
Dmitry Turin wrote: > Я должен хранить файлы (BLOB-ы) с 3 параметрами > и контролировать доступ пользователей к ним. > Общий объем файлов 2,5 Гб, что меньше, чем 32 Тб > (максимальный размер таблицы в pg). > 66% файлов имеют размер около 10-20 Kb, > 33% файлов имеют размер около 150-200 Kb, что меньше, чем 1Гб > (максимальный размер поля в pg). > > Я внимательно изучил http://pgfoundry.org, http://gborg.postgresql.org, > но не нажел подходящего инструмента. > Посоветуйте какой-нибудь бесплатный софт. Я уже выкладывал тут свою поделку для разделения доступа. Если это то, что надо, пользоваться так: \i row_acl.sql -- OBJECT with rights and parameters CREATE TABLE _blob ( id SERIAL, usr TEXT NOT NULL CHECK (usr ~ '^[A-Za-z0-9_]+$'), grp TEXT NOT NULL CHECK (grp ~ '^[A-Za-z0-9_]+$'), param HSTORE NOT NULL DEFAULT '', file BYTEA ); CREATE VIEW blob AS SELECT * FROM _blob o WHERE session_user = 'admin' OR o.acl && 'o+r' OR o.acl && 'u+r' AND o.usr = session_user OR o.acl && 'g+r' AND (pg_has_role(session_user, o.grp, 'member')); CREATE RULE blob_ins AS ON INSERT TO blob DO INSTEAD INSERT INTO _blob (usr, grp, acl, param, file) VALUES (new.usr, new.grp, new.acl, new.param, new.file); CREATE RULE blob_upd AS ON UPDATE TO blob DO INSTEAD UPDATE _blob SET id = new.id, usr = new.usr, grp = new.grp, acl = new.acl, param = new.param, file = new.file WHERE id = new.id AND ( o.acl && 'o+w' OR o.acl && 'u+w' AND o.usr = session_user OR o.acl && 'g+w' AND (pg_has_role(session_user, o.grp, 'member')); ); CREATE RULE blob_del AS ON DELETE TO blob DO INSTEAD DELETE FROM _blob WHERE id = old.id AND ( o.acl && 'o+w' OR o.acl && 'u+w' AND o.usr = session_user OR o.acl && 'g+w' AND (pg_has_role(session_user, o.grp, 'member')); ); REVOKE select, insert, update, delete ON _blob FROM PUBLIC; GRANT select, insert, update, delete ON blob TO PUBLIC; С того времени, как я его здесь выкладывал, там многое изменилось (уже не мной). Например, селективность индекса теперь считается.
Attachment
Andrey N. Oktyabrski wrote: > -- OBJECT with rights and parameters > CREATE TABLE _blob ( > id SERIAL, > usr TEXT NOT NULL CHECK (usr ~ '^[A-Za-z0-9_]+$'), > grp TEXT NOT NULL CHECK (grp ~ '^[A-Za-z0-9_]+$'), > param HSTORE NOT NULL DEFAULT '', > file BYTEA > ); Прошу прощения, самое главное поле не добавил в таблицу... -- OBJECT with rights and parameters CREATE TABLE _blob ( id SERIAL, usr TEXT NOT NULL CHECK (usr ~ '^[A-Za-z0-9_]+$'), grp TEXT NOT NULL CHECK (grp ~ '^[A-Za-z0-9_]+$'), + acl ROW_ACL NOT NULL DEFAULT 'u+rwd', param HSTORE NOT NULL DEFAULT '', file BYTEA );
Andrey, >> Я должен хранить файлы (BLOB-ы) с 3 параметрами >> и контролировать доступ пользователей к ним. >> Общий объем файлов 2,5 Гб, что меньше, чем 32 Тб >> (максимальный размер таблицы в pg). >> 66% файлов имеют размер около 10-20 Kb, >> 33% файлов имеют размер около 150-200 Kb, что меньше, чем 1Гб >> (максимальный размер поля в pg). >> >> Я внимательно изучил http://pgfoundry.org, http://gborg.postgresql.org, >> но не нажел подходящего инструмента. >> Посоветуйте какой-нибудь бесплатный софт. ANO> Я уже выкладывал тут свою поделку для разделения доступа. Если это то, ANO> что надо, пользоваться так: ANO> \i row_acl.sql Но это только sql, а не законченный продукт под браузер (+php,etc) или exe-шник (с исходником, например, под Delphi; etc) !? Dmitry Turin SQL4 (4.3.0) http://sql40.chat.ru HTML6 (6.4.1) http://html60.chat.ru Unicode2 (2.1.0) http://unicode2.chat.ru Computer2 (2.0.3) http://computer20.chat.ru
> ANO> \i row_acl.sql > Но это только sql, а не законченный продукт под браузер (+php,etc) или > exe-шник (с исходником, например, под Delphi; etc) !? Да, и к тому же совершенно непонятно где чорт побери кнопка "сделать мою работу" ?! -- engineer
Подобное решение есть для MySQL - mysqlfs.
Я разработал системы для хранения файлов в БД на PostgreSQL и Firebird.
В обоих случаях в БД хранил только ссылки на файлы, а реальные данные в ФС
на сервере. У PostgreSQL есть огромный плюс: plPerlu.
Для представления данных в виде ФС использую FUSE.
Эта тема регулярно обсуждается на sql.ru
Я должен хранить файлы (BLOB-ы) с 3 параметрами
и контролировать доступ пользователей к ним.
Общий объем файлов 2,5 Гб, что меньше, чем 32 Тб
(максимальный размер таблицы в pg).
66% файлов имеют размер около 10-20 Kb,
33% файлов имеют размер около 150-200 Kb, что меньше, чем 1Гб
(максимальный размер поля в pg).
Я внимательно изучил http://pgfoundry.org, http://gborg.postgresql.org,
но не нажел подходящего инструмента.
Посоветуйте какой-нибудь бесплатный софт.
Приветствую! Вопрос: Есть ли необходимость вручную вакуумить системные таблицы? Regards, ON.
Hello, uge said the following on 01.10.2007 7:40: > Я разработал системы для хранения файлов в БД на PostgreSQL и Firebird. > В обоих случаях в БД хранил только ссылки на файлы, а реальные данные в ФС > на сервере. Для firebird - через UDF ? -- Oleg