2016-05-06 10 views
1

初めてEC2サーバーとRDSをセットアップしました。私はS3を使用して、EC2サーバー上のページからアップロードされた画像を保存し、画像パスをデータベースに保存してから、後で画像を表示する必要があります。EC2からS3ストレージにアクセスして画像を保存して画像を表示

私はこれを通常のVPSで簡単に行うことができますが、私のEC2サーバーに座っているPHPコードからS3ストレージにアクセスする方法はわかりません。

アドバイスはありますか?

+0

ます。http:現在..すでに何らかの形で

ファイルをアップロードする例PHPコード、公衆へのアクセス許可を設定し、新しくアップロードされたファイルのURLを返しをしています://docs.aws.amaz on.com/aws-sdk-php/v3/guide/ –

+0

S3は、コードがEC2で実行されているか、AWSエコシステム外のサーバーで実行されているかにかかわらず同じ方法でアクセスされます。それはあなたが求めていることですか? –

+0

私は混乱していると思います。通常、従来のサーバーでは、私のプロジェクトが格納されているルートディレクトリがあります。私は単純にimgフォルダを作成し、img/image.jpgなどのパスを使ってアクセスできる画像を保存します。 S3はそのように機能しますか? – user2684521

答えて

2

新しいS3オブジェクトを作成するためにAWS SDKを使用すると、このイメージにアクセスするための完全なURLが返されます。

新しいS3オブジェクトをデータベースに正常に作成したときに返されるURLを保存し、既存のPHPコードを使用してそのURLをデータベースから取得し、HTMLページに表示します。

use Aws\S3\S3Client; 

$bucket = '*** Your Bucket Name ***'; 
$keyname = '*** Your Object Key ***'; 
// $filepath should be absolute path to a file on disk      
$filepath = '*** Your File Path ***'; 

// Instantiate the client. 
$s3 = S3Client::factory(); 

// Upload a file. 
$result = $s3->putObject(array(
    'Bucket'  => $bucket, 
    'Key'   => $keyname, 
    'SourceFile' => $filepath, 
    'ContentType' => 'text/plain', 
    'ACL'   => 'public-read', 
    'StorageClass' => 'REDUCED_REDUNDANCY', 
    'Metadata'  => array( 
     'param1' => 'value 1', 
     'param2' => 'value 2' 
    ) 
)); 

echo $result['ObjectURL']; 

S3 object example image

関連する問題