synology.forum архив спільноти · 2005–2022
ai.synology.forum →
ГлавнаяPhotoStation › Доступ к PostgreSQL

Доступ к PostgreSQL

SergeS · 15.06.2015

Очень хотелось бы обсудить пару вопросов по доступу к postgreSQL базе данных, где хранится информация о фотографиях фотостанции, наверное здесь самое лучшее место...

Даже не обсудить, а послушать грамотных людей, так как сам я в этом вопросе совсем не копенгаген... :-)

 

1) Хотелось бы увидеть рабочих примеров как коннектится к postgreSQL базе прямо из шелл-скриптов, у меня пока не получилось.

 

2) Зато получилось коннектится из php-скриптов, вот рабочий пример, показывает список всех используемых фотокамер в вашей фото-коллекции:

<?php 
$username = "admin";
$password = "--->>>  must_be_changed_here!!!";

  
try
  {
  $db = new PDO('pgsql:host=localhost; dbname=photo', $username, $password);
  $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  $db->exec("SET CLIENT_ENCODING TO 'UTF8'");
  }
    catch (PDOException $e)
      {
      print "Error: " . $e->getMessage() . "<br/>";
      die();
      }

try 
  {
   $sql = $db->query( "SELECT camera_model FROM photo_image GROUP BY camera_model ORDER BY camera_model" );
   while( $row = $sql->fetch( PDO::FETCH_ASSOC ) ) 
     { 
     echo $row['camera_model'];
     echo "<br />";
     }
  }
    catch( PDOException $e ) 
     {
      print "Error: " . $e->getMessage() . "<br/>";
      }
?>

 

3) А вот теперь - самое интересное... Почему в вышеприведенном коде все прекрасно показывается даже если я меняю пароль или вообще закоментирую строку $password = ... ?

Как это оно к этой базе данных без пароля вообще доступается???

SergeS · 20.06.2015
Очень хотелось бы обсудить пару вопросов по доступу к postgreSQL базе данных, где хранится информация о фотографиях фотостанции, наверное здесь самое лучшее место...

Даже не обсудить, а послушать грамотных людей, так как сам я в этом вопросе совсем не копенгаген... :-)

 

1) Хотелось бы увидеть рабочих примеров как коннектится к postgreSQL базе прямо из шелл-скриптов, у меня пока не получилось.

 

2) Зато получилось коннектится из php-скриптов, вот рабочий пример, показывает список всех используемых фотокамер в вашей фото-коллекции:

 

3) А вот теперь - самое интересное... Почему в вышеприведенном коде все прекрасно показывается даже если я меняю пароль или вообще закоментирую строку $password = ... ?

Как это оно к этой базе данных без пароля вообще доступается???

 

Ну надо же, почти неделя прошла, и никто знающий и/или интересующийся не отписался... Что - тема не интересует, никому в потрохах свой фотостанции, в ее базе данных, покопатся не интересно? Даже удивительно... А мне удалось почти (в смысле все уже понятно как сделать, но немного надо допилить напильником, хотя уже и так работает) сделать скрипт, который функционально почти заменяет давно запрашиваемую фичу - smart albums with public access level. Работает примерно так - в ваших не-паблик альбомах вы присваиваете определенным фотографиям определенный тэг (ну, скажем "public"), потом запускаете этот скрипт, он делает выборку из базы postgress фоток с этим тэгом и hardlinks (что бы лишнее место не занимать) на эти фотки копирует (сохраняя структуру папок) в заранее определенный паблик фотоальбом, после чего натравливает синоиндексацию на этот паблик фотоальбом. В результате после всего вы имеете свою нетронутую основную коллекцию фоток там же где она и была, а помимо этого все фотки с этим тэгом-маркером (точнее - хардлинки на них) лежат правильно разложенные в public альбомах...

 

Если кому интересно - скриптом поделюсь, но хотелось бы все же спровоцировать дискуссию по поводу PostgreSQL на Synology :-)