3

我正在努力引入 AWS PHP SDK,但由于我当前的堆栈没有使用包管理器,因此遇到了一些问题。也不是开始使用它的选项(与公司相关——宁愿不详细说明)。

话虽如此,我直接拉入源代码并尝试将其添加到我的包含路径中,并仅将我需要的文件包含在我正在编写的 S3 包装器对象中。但是,它遇到了命名空间(我认为)和那些爆炸的问题。

这是我指的图书馆: https ://github.com/aws/aws-sdk-php

我尝试按照底部有关使用 AmazonS3 并将文件上传到其中的内容进行操作。因此,我尝试将它引用的代码的各个部分包括在内,如下所示:

尝试一

require_once('/includes/third_party/aws-sdk-php-master/src/Aws/Common/Aws.php');
require_once('/includes/third_party/aws-sdk-php-master/src/Aws/S3/Enum/CannedAcl.php');
require_once('/includes/third_party/aws-sdk-php-master/src/Aws/S3/Exception/S3Exception.php');

尝试二

set_include_path(get_include_path() . "/includes/third_party/aws-sdk-php-master/src/");
include('Aws/Common/Aws.php');
include('Aws/S3/Enum/CannedAcl')
include('Aws/S3/Exception/S3Exception.php');   

这两个都产生了类似的错误:

Fatal error: Class 'Guzzle\Service\Builder\ServiceBuilderLoader' not found in \includes\third_party\aws-sdk-php-master\src\Aws\Common\Aws.php on line 26
PHP Fatal error: Class 'Guzzle\Service\Builder\ServiceBuilderLoader' not found in \includes\third_party\aws-sdk-php-master\src\Aws\Common\Aws.php on line 26

关于如何开始调试的任何建议?将不胜感激!

4

2 回答 2

7

AWS SDK for PHP 现在提供了一个 zip 文件,其中包含您需要的所有内容,包括自动加载器: http: //docs.aws.amazon.com/aws-sdk-php-2/guide/latest/installation.html#installing-via -压缩包

于 2013-06-05T09:07:33.900 回答
0

你应该坚持推荐的安装程序。就个人而言,我会使用 Composer 安装,或者只使用没有 Composer 的 PHAR。

然后你只需要包括 PHAR 像:

require '/path/to/aws.phar';

你将拥有你需要的一切。

您现在遇到的问题很可能是您没有利用自动装载机。使用您的方法,您将需要手动包含所有通常会自动加载的类。

您还需要下载并包含另一个库(Guzzle,未包含在 PHAR 存档中)。

于 2013-01-24T01:02:42.367 回答