我已经Amazon SDK
与 Symfony2 配合得很好。它涉及将sdk.class.php
权限加载到autoload.php
。我不确定这是不是最好,但似乎是。
但我的主要问题是加载凭证。 亚马逊也希望你...... 修改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
)));
亚马逊希望我们如何加载凭据并没有错。它只是似乎与Symfony2框架不太合适。在autoload.php中使用具有访问凭据的数组似乎不正确。
答案 0 :(得分:2)
为什么不使用类似AmazonWebServicesBundle的内容,它可以通过parameters.ini
或config.yml
进行配置?
此文档为here-link。目前,通过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