前提・実現したいこと
postgreSQLにて画像を登録したいのですが
その画像を用意してどこに配置すればpostgreSQLから参照ができるのでしょうか?
発生している問題・エラーメッセージ
該当のソースコード
試したこと
補足情報(FW/ツールのバージョンなど)
困っているのは分かりますが、まずはpostgresqlなどのRDBMSに対する基本的な理解が必要です。
これらのシステムでは、一般的にテーブルという構造にデータを格納します。言語としてはSQLを使ってテーブルにデータを格納したり、格納したデータを取得することになります。画像でもそれは同じで、テーブルという構造に画像データを格納したりするわけです。画像データを格納するためにはテーブルの構造定義が必要になります。まずはpostgresqlをちゃんとインストールして、文字列や数字のデータを扱えるようになってから、画像の取り扱いを学んでください。画像は本来DB内に格納しない(コストが高い)ものなので、扱いが文字列や数字より難しくなります。
一通りこうやればできるはず、という形が分かり、途中までは出来てるのに後一歩及ばない状態になったらまた質問してください。今は遠くて目標が見えてすらいない状態、平たく言えば不可能です。
ん?psqlからファイルが見えないと言ってるだけですか?
テーブルやSQLは分かりますか?
TABLE構造すらなかったので、DBをフォルダか何かと勘違いしてるのかと思いました。
もし分かっているなら、CREATE TABLE文を載せてください。
pg_ls_dir()を使用してDBに紐づいたフォルダから画像を参照するという意味です。DB自体の構造はあまり関係ないと思います
画像はバイナリデータ(base24)、にしてbytea型で格納するつもりです
base64はバイナリではありません。CREATE TABLE文書いてくださいね。
いないようですね。面倒なので齟齬がないように先に書いておきます。
入力画像データはサーバー上なのかクライアント上なのか。
SQL操作用のクライアントは何を使うのか。
CREATE TABLEはどういう形式なのか。
保管した画像データはSELECTされる際にどう使うのか。
これらによって、できること、できないこと、準備すること、向き不向きが結構違います。
ちゃんと設計しないとダメですよ。
多分今他の方が想定しているのは、
・入力画像はサーバー上
・SQL操作用のクライアントはサーバーのpsql
・CREATE TABLE文は宿題です
・SELECTされる際はbyteaのまま。どうしても必要ならbase64エンコードする。
・入力画像はサーバー内のpostgresql実行のLinuxユーザーの権限で作成し、そのユーザーで読めるディレクトリにある想定
・psqlではpostgres内管理者ユーザーで接続して操作する
・質問者はストアード・プログラムについて理解がある
だと思います。
うぐ…ちょっとお勉強してから質問します…丁寧にありがとうございましたmm
正直な話直接サーバー上のpsql叩くよりは別言語のクライアントからやった方が楽だと思います。便利に出来ているので。
ただ大量に画像があってロードに時間かかりそうだとか、トラフィック気になるとかならpsqlの方がいいと思います。