我想在我的 Yii 项目中使用 Amazon AWS SDK for PHP,但是我得到了各种包含错误(例如include(CFCredentials.php): failed to open stream: No such file or directory
)。
我认为这可能与 Yii 的类名必须与文件名匹配的假设有关......
我们能做些什么??
我想在我的 Yii 项目中使用 Amazon AWS SDK for PHP,但是我得到了各种包含错误(例如include(CFCredentials.php): failed to open stream: No such file or directory
)。
我认为这可能与 Yii 的类名必须与文件名匹配的假设有关......
我们能做些什么??
我已经做到了:
spl_autoload_unregister(array('YiiBase', 'autoload'));
require_once PATH_TO_AWS_SDK . 'sdk.class.php';
// I write down in PATH_TO_AWS_SDK.'config.inc.php' my CFCredentials
spl_autoload_register(array('YiiBase', 'autoload'));
$amazon_opts = array(
'curlopts' => array(
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_FORBID_REUSE => false,
),
);
$amazon = new AmazonSES();
$response = $amazon->get_send_quota($amazon_opts);
这很好用:
// Include the SDK
Yii::import('application.vendors.aws.*');
spl_autoload_unregister(array('YiiBase', 'autoload'));
require_once 'sdk.class.php';
spl_autoload_register(array('YiiBase', 'autoload'));
// Instantiate the AmazonEC2 class
$ec2 = new AmazonEC2();
万一有人偶然发现了这个问题,我发现如果有人直接使用 PHAR 文件(我知道这是一个糟糕的决定)并通过 require_once 导入,那么在你的 SDK 调用完成之前,你不能调用 spl_autoload_register 来重新添加 YiiBase 自动加载.
至少这是我们在使用 StsClient 调用具有 IAM 角色的承担角色时的情况。
这是更简单的方法,您可以使用 Yii S3 Upload 扩展。