AWS sdk와 함께 larvel 4를 사용합니다. 키와 리전이 다른 다른 AWS 서비스를 추가하고 싶습니다. 예를 들어 SES에 대해 하나의 AWS 서비스 만 사용했을 때 / app / config / aws / aws-sdk-php-laravel에 키를 배치하면 'secret' => 'xxxxxxxxxxxxx',
모두 잘 작동합니다. 이제 예를 들어 S3와 같은 다른 서비스를 추가하고 싶습니다. 그래서 동일한 디렉토리에 사용자 지정 구성 파일을 만듭니다.
configaws.php (chmod 777 사용) :
require 'vendor/autoload.php';
use Aws\Ses\SesClient;
use Aws\S3\S3Client;
// Create a client that uses the us-west-1 region
$client = SesClient::factory(array(
'key' => 'xxxxx',
'secret' => 'xxxxx',
'region' => 'eu-west-1'
));
$client = S3Client::factory(array(
'key' => 'xxxxx',
'secret' => 'xxxxx',
'region' => 'us-west-2'
));
내 config.php 파일에서이 줄을 사용 'config_file' => 'configaws.php',
하면 문제는 Laravel이이 파일을 찾을 수 없다는 것입니다. 'Unable to open configaws.php for reading'예외가 발생했습니다.
내 간단한 질문은 내 configaws.php
파일을 어디에 두어야 하는가 ? 많은 옵션을 시도했지만 아무것도 효과가 없기 때문입니다.
Amazon 서비스에 2 개의 다른 키를 사용하는 또 다른 옵션이 있습니까?
solution:
I used amazon's service IAM to create new user with permissions for S3 and SES
and used his key for my app.
Laravel 4.1 이상을 사용하는 경우 dot
파일을 사용하여 민감한 정보를 저장하는 가장 좋은 방법 입니다.
"실제"응용 프로그램의 경우 모든 민감한 구성을 구성 파일에서 제외하는 것이 좋습니다. 데이터베이스 암호, Stripe API 키 및 암호화 키와 같은 것은 가능할 때마다 구성 파일에서 보관해야합니다. 그래서 우리는 그것들을 어디에 두어야합니까? 고맙게도 Laravel은 "dot"파일을 사용하여 이러한 유형의 구성 항목을 보호하는 매우 간단한 솔루션을 제공합니다.
환경이 있다고 가정 production
하거나 다음 문서를 읽고 환경을 확인할 수 있습니다.
http://laravel.com/docs/configuration#environment-configuration
프로덕션 환경의 경우 .env.php
애플리케이션의 프로젝트 루트에을 생성하고 이와 같이 AWS 정보를 추가합니다.
// .env.php
<?php
return array(
//SesClient
'AWS_SES_KEY' => 'XXX',
'AWS_SES_SECRET' => 'XXX',
'AWS_SES_REGION' => 'XXX',
//S3Client
'AWS_S3_KEY' => 'XXX',
'AWS_S3_SECRET' => 'XXX',
'AWS_S3_REGION' => 'XXX',
);
이제 API 정보가 필요할 때 PHP의 슈퍼 전역 변수를 사용 $_ENV
하거나 $_SERVER
정보를 검색합니다. 예를 들어 Amazon s3 API 정보를 검색하려면 다음을 수행 할 수 있습니다.
<?php
echo $_ENV['AWS_S3_KEY'];
echo $_ENV['AWS_S3_SECRET'];
자세한 내용은 Laravel 문서를 확인하십시오.
http://laravel.com/docs/configuration#protecting-sensitive-configuration
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다