2016-05-06 17 views
1

Zum ersten Mal mit AWS zu tun, habe ich bereits meinen EC2-Server und RDS eingerichtet. Ich möchte mit S3 Bilder speichern, die von einer Seite auf meinen EC2-Server hochgeladen wurden, den Bildpfad in einer Datenbank speichern und das Bild dann zu einem späteren Zeitpunkt mit einem Bild anzeigen.Zugriff auf S3-Speicher von EC2 zum Speichern von Bildern und Anzeigen von Bildern

Ich kann dies leicht mit einem normalen VPS tun, aber nicht sicher, wie S3-Speicher von meinem PHP-Code in meinem EC2-Server zugreifen.

Irgendwelche Ratschläge?

+0

http : //docs.aws.amaz on /aws-sdk-php/v3/guide/ –

+0

S3 wird auf dieselbe Weise aufgerufen, unabhängig davon, ob der Code in EC2 oder in einem Server außerhalb des AWS-Ökosystems ausgeführt wird. Ist es das, was du fragst? –

+0

Ich denke ich bin verwirrt. Normalerweise habe ich in einem traditionellen Server ein Stammverzeichnis, in dem mein Projekt gespeichert ist. Ich erstelle einfach einen IMG-Ordner und speichere Bilder, auf die ich dann zugreifen kann, indem ich zum Beispiel den Pfad img/image.jpg benutze. Funktioniert S3 so? – user2684521

Antwort

2

Wenn Sie das AWS SDK zum Erstellen eines neuen S3-Objekts verwenden, sollte es die vollständige URL zurückgeben, um auf dieses Image zuzugreifen.

Speichern Sie die URL, die zurückgegeben wird, wenn Sie erfolgreich ein neues S3object zu Ihrer Datenbank erstellen, wie Sie es jetzt sind, und ziehen Sie dann diese URL aus der Datenbank mit Ihrem vorhandenen PHP-Code, um es in der HTML-Seite anzuzeigen, was ich von Ihnen vermute werden zur Zeit in irgendeiner Form zu tun oder andere schon ..

Beispiel PHP-Code eine Datei, Berechtigungen für die öffentlichen und kehren die URL der neu hochgeladene Datei laden:

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

Verwandte Themen