Symfony2 Amazon SDK Установка учетных данных динамически - PullRequest
1 голос
/ 15 марта 2012

Я получил Amazon SDK, чтобы хорошо работать с Symfony2 . Это включает загрузку sdk.class.php прямо в autoload.php. Я не уверен, что это лучше, но, кажется, так и есть.

Но моя главная проблема - загрузка учетных данных. Amazon тоже хочет вас .. отредактируйте config.inc.php и поместите его либо в vendor directory ИЛИ в HOME. Вариант 1 не годится, потому что он включает в себя изменение Repo, которое будет перезаписано при обновлениях, а HOME не работает, потому что он находится за пределами каталога моего проекта.

Что я сейчас делаю, внутри autoload.php загружает sdk.class.php и затем запускает CFCredentionals:set(array()); .. мой код ниже. Обычно я хотел бы сделать инъекцию зависимостей или использовать параметры ... но я не могу найти какой-либо другой способ загрузить учетные данные. Кроме того, я не хочу загружать их, когда создаю экземпляры Сервисов. как $e3 = new AmazonE3(array($a,$s));. Это намного чище, и поток выровнен, чтобы иметь предварительно загруженные учетные данные, так что вы можете просто использовать $e3 = new AmazonE3();

Так вот что работает - но должен быть лучший способ

 require_once __DIR__. '../../vendor/AmazonPHPSDK/sdk.class.php';
    CFCredentials::set(array(
       '@default' => array(
            'key' => '1dfXXXXXXXXXXXXXXXXXXXXXZ82',
            'secret' => '8tCXXXXXXXXXXXXXXXXXXXXXXfjB+Q',
            'default_cache_config' => 'apc',
             'certificate_authority' => false
        )));

Нет ничего плохого в том, как Amazon хочет, чтобы мы загружали учетные данные. Похоже, что он просто не подходит для фреймворка Symfony2. Наличие массива с учетными данными для доступа в autoload.php просто не выглядит правильным.

1 Ответ

2 голосов
/ 15 марта 2012

Почему бы не использовать что-то вроде AmazonWebServicesBundle , которое выглядит так, как будто позволяет конфигурировать через parameters.ini или config.yml?


Документация для этого здесь-ссылка . В настоящее время шаги для установки учетных данных с помощью parameters.ini ИЛИ config.yml находятся на шаге 6, и это выглядит примерно так:

// app/config/parameters.ini
[parameters]
    ...

    ; Amazon Web Services Configuration. Found in the AWS Security Credentials.
    aws_key                        = YOUR_KEY
    aws_secret                     = YOUR_SECRET_KEY
    aws_account_id                 = YOUR_ACCOUNT_ID
    aws_canonical_id               = YOUR_CONONICAL_ID
    aws_canonical_name             = YOUR_CONONICAL_NAME
    aws_mfa_serial                 = YOUR_MFA_SERIAL
    aws_cloudfront_keypair_id      = YOUR_CLOUDFRONT_KEYPAIR_ID
    aws_cloudfront_private_key_pem = YOUR_CLOUDFRONT_PRIVATE_KEY_PEM
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...