SDK AWS с Lumen

Я пытаюсь установить AWS Laravel SDK с помощью lumen. Я мог бы установить его с помощью:

{
"require": {
    "aws/aws-sdk-php-laravel": "~3.0"
    }
}

Но тогда в документации говорится:

Найдите ключ провайдеров в файле config/app.php и зарегистрируйте поставщика услуг AWS.

'providers' => array(
    // ...
    Aws\Laravel\AwsServiceProvider::class,
)

Найдите ключ псевдонимов в файле config/app.php и добавьте псевдоним фасада AWS.

'aliases' => array(
    // ...
    'AWS' => Aws\Laravel\AwsFacade::class,
)

Дело в Lumen, там нет config/app.php

Как мне это сделать???


person Juliatzin    schedule 17.12.2015    source источник
comment
Я думаю, вы должны создать его (config/app.php)с нуля   -  person senty    schedule 18.12.2015


Ответы (3)


В bootstrap/app.php добавьте следующее:

Провайдер:

$app->register(Aws\Laravel\AwsServiceProvider::class);

Фасад

class_alias('Aws\Laravel\AwsFacade','AWS');

  • Обратите внимание, что вам нужно раскомментировать $app->withFacades(); для работы с фасадом.
person Pubudu Jayawardana    schedule 12.05.2016
comment
после этого в документации говорится о запуске: php artisan vendor:publish, но эта команда не работает, также говорится о настройке app/config/aws.php, которых нет в Lumen... какой-нибудь намек? - person Cristian Sepulveda; 15.11.2016

Сначала я тоже был немного смущен, так что, что я в итоге сделал.

  1. Установите AWS Laravel SDK (https://github.com/aws/aws-sdk-php-laravel) с помощью Composer.
  2. Обновите app.php, чтобы включить $app->register(Aws\Laravel\AwsServiceProvider::class);
  3. Добавьте мои значения учетных данных/региона AWS в мой файл .env
  4. Создайте метод в одном из моих вспомогательных классов, который определяется следующим образом:

    public static function getS3Instance() { return new \Aws\S3\S3Client([ 'version' => 'latest', 'region' => env('AWS_REGION'), 'credentials' => [ 'key' => env('AWS_KEY'), 'secret' => env('AWS_SECRET') ] ]); }

В модели я просто вызываю Util::getS3Instance() и бум, у меня есть все, что мне нужно, чтобы начать использовать S3. Эту функцию можно легко адаптировать для возврата экземпляра любого из клиентов AWS, включенных в библиотеку.

Все это происходит в проекте Lumen 5.6, но я предполагаю, что тот же подход будет работать и для более старых версий Lumen. Надеюсь, это поможет!

person Nicholas Kreidberg    schedule 06.03.2018
comment
Вы должны добавить привязку к контейнеру службы, а не использовать вспомогательный файл для доступа к S3Client. - person Jeffrey; 13.04.2018

Вы можете скопировать файлы конфигурации Lumen по умолчанию, чтобы переопределить их.

Файлы конфигурации

Вы можете использовать полные конфигурационные файлы в стиле Laravel, если хотите. Файлы по умолчанию хранятся в каталоге vendor/laravel/lumen-framework/config. Lumen будет использовать вашу копию файла конфигурации, если вы скопируете и вставите один из файлов в каталог конфигурации в корне вашего проекта.

Использование полных файлов конфигурации даст вам больше контроля над некоторыми аспектами конфигурации Lumen, такими как настройка нескольких «дисков» хранилища или подключение к базе данных для чтения/записи.

Ссылка: http://lumen.laravel.com/docs/installation#configuration-files

person Marcin Nabiałek    schedule 19.12.2015