Just nu i M3-nätverket
Gå till innehåll

Variabel hittas inte, uppkoppling mot AWS S3 i PHP ramverk


Martin79

Rekommendera Poster

Använder följande minimalistiska PHP ramverk https://github.com/panique/mini samt Amazon S3
 
Använder jag följande kod i ex index functionen i min kontroller kan jag använda $client och komma åt filerna på Amazon S3
 
// Instantiate the S3 client with your AWS credentials
        $client = S3Client::factory(array(
 
        'key' => 'YOUR_AWS_ACCESS_KEY_ID',
        'secret' => 'YOUR_AWS_SECRET_ACCESS_KEY',
 
        ));
 
Jag vill dock inte behöva ha det i varje funktion jag vill komma åt S3 utan istället lyfta ut det till min konfigurationsfil.
 
Ramverket har en konfigurationsfil som jag använder. Här är instruktionerna hur man använder en konfigurationsfil med Amazon S3 http://docs.aws.amazon.com/aws-sdk-php/guide/latest/credentials.html#configuration-credentials
 
Jag lägger följande kod i application/config/config.php
 
return array(
    // Bootstrap the configuration file with AWS specific features
    'includes' => array('_aws'),
    'services' => array(
        // All AWS clients extend from 'default_settings'. Here we are
        // overriding 'default_settings' with our default credentials and
        // providing a default region setting.
        'default_settings' => array(
            'params' => array(
                array(
                    'credentials' => array(
                        'key'    => 'YOUR_AWS_ACCESS_KEY_ID',
                        'secret' => 'YOUR_AWS_SECRET_ACCESS_KEY',
                    )
                ),
                'region' => 'us-west-1'
            )
        )
    )
);
 
För att sen komma åt mina nycklar använder jag följande kod, som jag testat på flera ställen.
 
use Aws\S3\S3Client;
$s3Client = S3Client::factory('APP . '/config/config.php');
$client = $s3Client->get('s3');
 
Om jag lägger följande kod i min konfigurationsfil och sedan försöker använda den i min kontroller får jag ett felmeddelande att variablen $client inte hittas. Om jag lägger koden överst i min kontroller utan förklassen, inne i klassen eller inne i en metod får jag upp felmeddelandet
 

 

Fatal error: Uncaught exception 'Aws\Common\Exception\InvalidArgumentException' with message 'The config must be provided as an array or Collection.'
 
Kan någon hjälpa mig hur/var jag ska använda koden från dokumentationen i "mitt" ramverk?
Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...