4

我想在我的 Yii 项目中使用 Amazon AWS SDK for PHP,但是我得到了各种包含错误(例如include(CFCredentials.php): failed to open stream: No such file or directory)。

我认为这可能与 Yii 的类名必须与文件名匹配的假设有关......

我们能做些什么??

4

4 回答 4

5

我已经做到了:

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);
于 2012-11-23T05:07:17.667 回答
2

这很好用:

// 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();
于 2013-02-25T16:04:46.860 回答
1

万一有人偶然发现了这个问题,我发现如果有人直接使用 PHAR 文件(我知道这是一个糟糕的决定)并通过 require_once 导入,那么在你的 SDK 调用完成之前,你不能调用 spl_autoload_register 来重新添加 YiiBase 自动加载.

至少这是我们在使用 StsClient 调用具有 IAM 角色的承担角色时的情况。

于 2016-01-07T17:49:16.093 回答
0

这是更简单的方法,您可以使用 Yii S3 Upload 扩展。

http://www.yiiframework.com/extension/s3upload/

于 2015-02-13T06:09:31.943 回答