質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

解決済

4回答

8744閲覧

データベースに画像のパスを保存した場合、画像自体はどこに保存されている?

esocchi

総合スコア24

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

3クリップ

投稿2017/10/12 03:57

お世話になっております。

現在webアプリを作成しています。その中でtwitterのように各ユーザのアイコン画像を登録したいと考えています。

ここから表題の件になるのですが、画像のパスをデータベースに格納することは理解できるのですが、画像自体はどこに保存されているのでしょうか?
twitterを例としてファイル名<image.jpg>をアイコン画像として考えると、

①ユーザの端末からアイコンにしたい画像を選択
(ここから良くわからず推測なのですが。。。)
②画像のパスはデータベースに格納(../test/image.jpg)
③画像は別のサーバに格納?(image.jpg)

このような認識で合っているのでしょうか?
乱文で申し訳ないですが、ご回答よろしくお願い致します。

参考
データベースに画像を保存するのはありでしょうか?
mysqlを利用しDBに画像パスを保存するには?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

質問の主旨がよくわからないのですが

画像のパスをデータベースに格納することは理解できるのですが、画像自体はどこに保存されているのでしょうか?

DBに画像のパスが保存されているわけですから、そのパスのカレントディレクトリに保存されていると
考えるのが普通です。

ただしSNS系の処理になると、ユーザー同士のつながり方によって公開する画像が違っていたりするので
画像自体は非公開パスにおいておいて、画像ローダーでつながりをチェックした上で呼び出すのが妥当です

投稿2017/10/12 04:36

yambejp

総合スコア114742

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

esocchi

2017/10/12 06:55

分かりにくい質問ですみません。回答ありがとうございます。 >>DBに画像のパスが保存されているわけですから、そのパスのカレントディレクトリに保存されていると 考えるのが普通です。 つまり、何かしら画像自体を保存しておくディレクトリを用意しなければいけないということですよね。
guest

0

ベストアンサー

データベースの1つのカラム(文字列型のカラム)に画像のパスをセットした場合は、insertではそのパスだけが登録され、selectではそのパスが取得されます。

画像ファイル(バイナリ)そのものは、どこかにストア(保存)します。
サーバのローカルディスク /var/www/image/anata.png に置いても、
/mnt/wwww/image/anata.png のように、OSからストレージをマウントして、そのマウントしたところに画像を置いても良いです。

ブラウザ等から画像取得のリクエストがあった場合に、そのリクエストに対して画像を返却するので、
その返却をどうするかだけです。

ユーザの端末でアイコンを選択
-> アプリがtwitterが保持するサーバに画像をアップロード
-> twitter側で管理しやすいように保持(画像をリサイズや最適化したり、twitter内のidとアイコンを紐付ける)

-> twitterに対し、アプリやブラウザ何かで、リクエスト
-> twitter側で、ユーザ等を識別して 画像を返却、twitter側ではCDN等にリクエストされるようにして、画像を処理している

投稿2017/10/12 04:32

kuniku

総合スコア253

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

esocchi

2017/10/12 06:48

回答ありがとうございます。 詳しく書いて頂き、理解につながりました。
guest

0

一般的と言えるかどうかわかりませんが、例えば WordPress ですと「画像のパスはデータベースに格納」して画像自体はサーバのディレクトリに保存しています。

wp-content/uploads/年?/月?

というようなディレクトリです。

投稿2017/10/12 04:30

showkit

総合スコア1638

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

esocchi

2017/10/12 06:21

回答ありがとうございます。 >>画像自体はサーバのディレクトリに保存しています このサーバはデータベースサーバという認識で良いのでしょうか?
showkit

2017/10/12 07:26

いえ、WordPress のデフォルトでは WordPress 自体の存在するサーバ(通常は WEB サーバ)です。
guest

0

どうやら、私が質問文の意図を取り違えていた可能性があるので追記します。

画像はWebサーバと同じサーバでいいと思いますが、大手のサービスは別の、画像を置く専用のサーバに置いているみたいです。


思うに、考える順序が逆なのではないでしょうか。
画像のパスを先に考えるのではなく、まず画像を保存してからそのパスを考えるというのが正しい手順では?

まず、画像を保存する方法はどのようにしているのでしょうか。

例えば、データベースに画像を保存するのはありでしょうか?の質問の状況では、データベースの中に画像自体が保存されています。この場合、画像はファイルシステム上のこれと言える場所に存在するわけではなく、メモリ上にあったり作業用ファイルの中にあったりいろいろな場所にあります。

しかし、Webアプリを作る場合、一般的には適当なディレクトリに保存することがほとんどだと思います。
画像のパスはその過程で得られるのではないでしょうか。

もしそれがわからなければ、現在使用されている言語/フレームワークにおいて、アップロードされたファイルを保存する方法を調べてください。

投稿2020/06/30 02:32

編集2020/06/30 17:39
magf

総合スコア212

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問