webForumDet fria alternativet

Variabel hittas inte, uppkoppling mot AWS S3 i PHP ramverk

PHP

0 svar · 1 108 visningar · startad av xtreme

Medlem sedan juli 20002 056 inlägg
Frågan#1

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?

1605 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
137 ms — deklarationer (db)
0 ms — hämta statistik (cache)
1465 ms — hämta tråd, inlägg och bilagor (db)
134 ms — ändringar (db)