首页 > 解决方案 > AWS S3 PHP SDK,未找到 S3Client 类

问题描述

我正在尝试使用他们的 PHP SDK v3 建立与 Amazon S3 存储的连接。

我正在关注本指南:https ://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/getting-started_basic-usage.html

所以我使用 Composer 安装了 SDK 并创建了一个名为 ftptest.php 的文件(不要介意名称),其中包含以下内容:

<?PHP
require '/home/printzel/public_html/new/vendor/autoload.php';

use Aws\S3\S3Client;

use Aws\Exception\AwsException;

//Create a S3Client
$s3 = new Aws\S3\S3Client([
    'version' => 'latest',
    'region' => 'nl-ams1'
]);
?>

但是当转到该页面时,我收到 HTTP 500 错误。检查我的错误日志时,我看到:

[01-Apr-2021 14:01:27 UTC] PHP Fatal error:  Uncaught Error: Class 'Aws\S3\S3Client' not found in /home/printzel/public_html/new/ftptest.php:9
Stack trace:
#0 {main}
  thrown in /home/printzel/public_html/new/ftptest.php on line 9

如您所见,我包含了我的自动加载文件。但是由于某种原因它找不到正确的类,为什么?

这是目前我的结构在我的服务器上的样子:

自动加载位置:

/home/printzel/public_html/new/vendor/autoload.php

AWS 文件夹位置:

/home/printzel/public_html/new/vendor\aws\aws-sdk-php\src

我的根目录中的composer.json:

{
    "require": {
        "aws/aws-sdk-php": "^3.176"
    }
}

标签: phpamazon-web-servicesclasssdknamespaces

解决方案


您需要替换Aws\S3\S3ClientS3Client

use Aws\S3\S3Client;
use Aws\Exception\AwsException;

//Create a S3Client
$s3 = new S3Client([
    'version' => 'latest',
    'region' => 'nl-ams1'
]);

更多细节在这里 -文档

希望能帮到你

您也可以创建别名:

use Aws\S3\S3Client as AwsClient;
use Aws\Exception\AwsException;

//Create a S3Client
$s3 = new AwsClient([
    'version' => 'latest',
    'region' => 'nl-ams1'
]);

推荐阅读