我是亚马逊s3的新手。我将zip下载到我的项目中并解压缩。 Bucket已经创建了'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);
}
我收到Fatel错误:超过15秒的最长执行时间。 真的不知道我做错了什么。任何帮助都可能非常明显。
由于
答案 0 :(得分:1)
我看到了一些你可能需要做的事情。
首先,您正在指定
'SourceFile' => getcwd(),
当我认为你可能打算做的时候
'SourceFile' => $pathToFile,
第二次,你正在做var_dump($result);
,这可能不会告诉你你期望看到什么。请尝试使用var_dump($result->toArray());
,但请务必查看user guide page about response models以获取有关使用结果的更多信息。
第三次,您看到的错误Fatal error: Maximum execution time of 15 seconds exceeded
与PHP的max_execution_time
INI设置有关。如果需要,您应该增加该限制。您也可以在一个过程中使用set_time_limit function。
我希望有所帮助!