Datei hochladen auf amazon S3 mit PHP-SDK

Ich versuche, ein Bild hochzuladen auf meinem amazon S3 über Ihre PHP-SDK. Also machte ich ein kleines Skript zu tun. Aber mein script funktioniert nicht und meine Ausnahme nicht schickt mich zurück, keine Fehlermeldung.

Ich bin neu bei AWS danke für Eure Hilfe.

Hier ist der code :

Config.php

<?php 

return array(
'includes' => array('_aws'),
'services' => array(
  'default_settings' => array(
      'params' => array(
          'key'    => 'PUBLICKEY',
          'secret' => 'PRIVATEKEY',
          'region' => 'eu-west-1'
      )
    )
  )
);

?>

Index.php

 <?php


//Installing AWS SDK via phar
require 'aws.phar';

use Aws\S3\S3Client;
use Aws\S3\Exception\S3Exception;

$bucket = 'infact';
$keyname = 'myImage';

//$filepath should be absolute path to a file on disk                      
$filepath = 'image.jpg';

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

//Upload a file.
try {

$result = $s3->putObject(array(
    'Bucket'       => $bucket,
    'Key'          => $keyname,
    'SourceFile'   => $filePath,
    'ContentType'  => 'text/plain',
    'ACL'          => 'public-read',
    'StorageClass' => 'REDUCED_REDUNDANCY'
));

 //Print the URL to the object.
    echo $result['ObjectURL'] . "\n";
} catch (S3Exception $e) {
    echo $e->getMessage() . "\n";
}

?>

EDIT : ich bin jetzt mit diesem code, aber seine immer noch nicht funktioniert. Ich weiß nicht einmal, ein Fehler oder eine exception Meldung.

    <?php

require 'aws.phar';

use Aws\S3\S3Client;
use Aws\S3\Exception\S3Exception;

$bucket = 'infactr';
$keyname = 'sample';
//$filepath should be absolute path to a file on disk                      
$filepath = 'image.jpg';

//Instantiate the client.
$s3 = S3Client::factory(array(
    'key'    => 'key',
    'secret' => 'privatekey',
    'region' => 'eu-west-1'

    ));

try {
    //Upload data.
    $result = $s3->putObject(array(
        'Bucket' => $bucket,
        'Key'    => $keyname,
        'SourceFile'   => $filePath,
        'ACL'    => 'public-read',
        'ContentType' => 'image/jpeg'
    ));

    //Print the URL to the object.
    echo $result['ObjectURL'] . "\n";
} catch (S3Exception $e) {
    echo $e->getMessage() . "\n";
}

?>
  • Laufen Sie über das Web oder über die Kommandozeile ?
  • Aus dem Internet, warum?
  • Versuchen Sie es von der Befehlszeile aus, um die Fehler sehen.
  • Ich habe noch nie verwenden, jede Konsole mit dem s3. Verwenden Sie s3tools.org zu verbinden?
  • Ja s3cmd. Sie brauchen nicht s3cmd zu versuchen, dein Skript. Führen Sie einfach: php <yourscript>.php
  • Entschuldigung für meine dumme Frage, aber wie Verbinde ich mein S3 dann? Wo führe ich meine Befehlszeile? (mac osx)
  • aws.amazon.com/cli?
  • von der Linux-Kommandozeile
  • OK, also ich nehme an, Sie sind mit linux als OS. Können Sie mir sagen, warum ich brauchen, um die Befehlszeile verwenden, um mein Skript auszuführen ? Warum kann ich nicht einfach mein php-Skript auf meinem browser?
  • Sie können mit Ihrem browser auch, es ist nur so, dass von der Befehlszeile aus können Sie die Fehler sehen. Ich nehme an, Sie können sich Ihre web-server-Protokolle auf Fehler zu.
  • Heilige shart Jungs — es ist Zeit zu beginnen, mit Komponisten, wie ein Erwachsener.
  • hey @casusbelli stehe ich vor demselben problem. hab keine Lösung für ein und dasselbe ?

InformationsquelleAutor casusbelli | 2014-03-16
Schreibe einen Kommentar