2011-07-23 13 views
6

現在、Amazon RDSのMySQLサービスで多数のテーブルを作成しています。いくつかのテーブルにはイメージリンクが必要です。私が把握しようとしているのは、どこにイメージを置くのですか?彼らはどこかRDSに入っていますか?それともS3に入れてRDSにリンクするのですか?後者の場合、どうすればいいですか?Amazon AWSにRDS用の画像を保存する場所

私はこれで結論を出したわけではありません。

答えて

1

RDSの列にバイナリデータとして保存することも、S3を使用することもできます。 S3を使用する場合は、RDSの画像にhttp-urlを保存してから、S3からhttpで画像を取得します。

+0

私はS3でバケットを設定し、画像をアップロードし、パーミッションを設定し、httpリンクを取得しました。次に、RDSのテーブルにリンクを追加します。INSERT INTO images_test VALUES(NULL、 'https://s3.amazonaws.com/images_pregcompanion/dog.jpg'); – BattlFrog

+0

私は画像を取得するためのPHPスクリプトを書いた:<?php \t $ dbhost = 'myinstance.cfnip3dcjkqj.us-west-1.rds.amazonaws.com'; \t $ dbuser = 'name'; \t $ dbpass = 'pass'; \t $ dbname = 'test'; //サーバーに接続してデータベースを選択します。 $ conn = mysql_connect($ dbhost、$ dbuser、$ dbpass)またはdie( 'mysqlへの接続エラー'); mysql_select_db($ dbname)またはdie( 'can not select DB'); $ query = mysql_query( "SELECT * FROM images_test"); $行= mysql_fetch_array($クエリ); $ content = $ row ['image']; header( 'コンテンツタイプ:image/jpg'); echo $ content; ?> – BattlFrog

+0

PHPスクリプトからの応答は、エラーが含まれているため画像を表示できません。私はS3のリンクをクリックして画像を見ることができます。何か案は? – BattlFrog

5

画像のサイズや使用例などによっては、S3で画像を保存している可能性があります。

S3パスはデータベースフィールドとして保存できます。バケットをドメイン名(例:images.example.com)として作成し、バケットにCNAMEを指定すると、イメージに直接アクセスできます。また、セキュリティを組み込む場合は、さまざまなS3ライブラリを使用して署名付きの時間制限付きURLを生成することもできます。

関連する問題