我有一个包含我应用程序中所有函数的大型
我有一个名为
这是我的本地实现:
functions.php
文件。在文件顶部,我包含了use Aws\S3\S3Client;
命名空间。下面的文件内容仅为一大堆函数列表。我有一个名为
uploadFile
的函数,最初只是将文件加载到本地磁盘并在数据库中插入一条记录。现在我想将文件上传到AWS S3存储桶,但当我尝试使用我在这里找到的AWS代码时:http://docs.aws.amazon.com/AmazonS3/latest/dev/UploadObjSingleOpPHP.html
它给我这个错误:Fatal error: Class 'Aws\S3\S3Client' not found in C:\wamp\www\project\functions.php
这是我的本地实现:
function uploadFile($file_name, $target_directory, $files = null) {
$bucket = getS3Bucket();
$keyname = getS3Key();
// $filepath should be absolute path to a file on disk
$filepath = $file_name;
// Instantiate the client.
$s3 = S3Client::factory();
// Upload a file.
$result = $s3->putObject(array(
'Bucket' => $bucket,
'Key' => $keyname,
'SourceFile' => $file_name,
'ContentType' => 'text/plain',
'ACL' => 'public-read',
'StorageClass' => 'REDUCED_REDUNDANCY',
'Metadata' => array(
'param1' => 'value 1',
'param2' => 'value 2'
)
));
return $result;
}
看起来我在使用S3 API与我的过程式代码遇到了问题,是否有一种方法可以处理它,而不必重新编写我进行文件上传的所有地方呢?(换句话说,我将对uploadFile
函数进行任何必要的更改,但我不想重新编写该函数的每个实现。)
require 'vendor/autoload.php';
)? - undefinedthirdparty
的文件夹,在其中有aws
SDK。愚蠢的是,我没有与之建立任何连接,尽管我在其中没有看到vendor/autoload.php
(不过我现在会马上查看)。 - undefined