0

我是亚马逊s3的新手。我将 zip 下载到我的项目中并解压缩。存储桶已创建“bucketToUpload”。我上传文件的代码是

require 'aws/aws-autoloader.php';

use Aws\S3\S3Client;
use Aws\S3\Exception\S3Exception;
use Aws\S3\Enum\CannedAcl;


$bucket = 'bucketToUpload';
$pathToFile = getcwd().'/s3_upload_file.doc';

if(file_exists($pathToFile)) {

    try  {
        $client = S3Client::factory(array(
            'key'    => 'MYKEY',
            'secret' => 'MYSECRETKEY',
            'region' => 'us-west-1'
        ));

        $client->waitUntilBucketExists(array('Bucket' => $bucket)); 


        $result = $client->putObject(array(
                'Bucket'     => $bucket,
                'Key'        => 's3_upload_file.doc',
                'SourceFile' => getcwd(),
                'ACL'        => CannedAcl::PRIVATE_ACCESS,
                'Metadata'   => array(
                        'Foo' => 'abc',
                        'Baz' => '123'
                    )
                ));
      } catch (S3Exception $e) {
           echo "The file was not uploaded: " . $e->getMessage();
      }
    var_dump($result);      
}

我收到 Fate 错误:超过 15 秒的最大执行时间。真的不知道我做错了什么。任何帮助都是非常可观的。

谢谢

4

1 回答 1

1

我看到一些你可能需要做的事情。

首先,您正在指定

'SourceFile' => getcwd(),

当我认为你可能打算这样做时

'SourceFile' => $pathToFile,

其次,您正在做的事情var_dump($result);可能不会向您展示您期望看到的内容。改为尝试var_dump($result->toArray());,但请务必查看有关响应模型的用户指南页面,以获取有关使用结果的更多信息。

第三,您看到的错误Fatal error: Maximum execution time of 15 seconds exceeded与 PHP 的max_execution_timeINI 设置有关。如果需要,您应该增加该限制。您还可以在单​​个进程中使用set_time_limit 函数。

我希望这会有所帮助!

于 2013-06-11T20:57:13.933 回答