AWS PHP SDKをインストールしましたが、SESを使用しようとしています。私の問題は、明らかに私が何をするにしても~/.aws/credentials
を読もうとしていることです。AWS PHP SDKに資格情報を渡すことができません
$S3_AK = getenv('S3_AK');
$S3_PK = getenv('S3_PK');
$profile = 'default';
$path = '/home/franco/public/site/default.ini';
$provider = CredentialProvider::ini($profile, $path);
$provider = CredentialProvider::memoize($provider);
$client = SesClient::factory(array(
'profile' => 'default',
'region' => 'us-east-1',
'version' => "2010-12-01",
'credentials' => [
'key' => $S3_AK,
'secret' => $S3_PK,
]
));
そして、まだ(かなり長い間の後に)エラー「〜/ .aws /資格情報から認証情報を読み取ることができません」取得しています:私は現在、このコードを持っています。
私は 'credentials' => $ providerを試しましたが、それはアイデアでしたが、動作していないので、ハードコードされた資格情報に戻りました。私は$ S3_AKと$ S3_PKを投げ捨てました。彼らは本当にS3用に正しく使用していますが、そこにはZendのラッパーがあります。私は〜/ .aws/credentials(no ".ini")を同じ結果に試みました。どちらのファイルも777の権限を持っています。
奇妙な情報:例外をvar_dumpできるように、メモリの制限を-1に設定する必要がありました。例外へのhtmlは約200MBです。
資格情報ファイルは問題ありませんが、環境変数を使用することをお勧めします。私は信任状をハードコーディングしたにもかかわらず、ファイルを読み込もうとしているように見える理由は分かりません。
EDIT:友達が私にthisと表示し、プロファイルを削除して試してみると、クライアントが正しく作成されているように見えて、実際にメールを送信しようとしたことに気付きました。
変数は 'AWS_ACCESS_KEY_ID'と' AWS_SECRET_ACCESS_KEY'すべきではありませんか? –
私の答えがうまくいかない場合は、ファイルだけでなくファイルの親ディレクトリのパーミッションもチェックしてください。サーバーが実行されているユーザーは、親ディレクトリの1つを開くことができないため、サーバーを読み取ることができない場合があります。これは 'sudo -u www-data stat/home/franco/public/site/default.ini'のようなものでテストできます。ここで' www-data'はサーバーユーザーです。 – millinon
フレデリック、1つはキーID、もう1つはアクセスキーです。私はそれらを環境変数から取得しています。それでも問題は、明示的に資格情報を伝えていますが、そのファイルを読み込もうとしていることです。 – shinax