---
title: "Variabel hittas inte, uppkoppling mot AWS S3 i PHP ramverk"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/192611-variabel-hittas-inte-uppkoppling-mot-aws-s3-i-php-ramverk"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "xtreme"
published: "2015-02-22T00:06:05.000Z"
updated: "2015-02-22T00:06:05.000Z"
replies: 0
views: 1125
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/192611-variabel-hittas-inte-uppkoppling-mot-aws-s3-i-php-ramverk"
---

# Variabel hittas inte, uppkoppling mot AWS S3 i PHP ramverk

## #1 — xtreme, 2015-02-22T00:06Z

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?

Permalänk: https://www.webforum.nu/p/192611

---

Tråden på webben: https://www.webforum.nu/amne/php/192611-variabel-hittas-inte-uppkoppling-mot-aws-s3-i-php-ramverk
