我正在尝试通过 PHP SDK 在我的亚马逊 S3 存储桶上上传文件。但是我的脚本不起作用,我有一个空白页面,没有任何错误或异常消息。
编辑:在 php.ini 中启用“display_error”后。我有下面的错误消息(看起来 sdk 在我这边不起作用)。
感谢@datasage。问题是 aws.phar 需要在计算机上安装 cURL 才能工作。
sudo apt-get 安装 php5-curl
<?php
require 'aws.phar';
use Aws\S3\S3Client;
use Aws\S3\Exception\S3Exception;
$bucket = 'infactr';
$keyname = 'sample';
// $filepath should be absolute path to a file on disk
$filepath = 'image.jpg';
// Instantiate the client.
$s3 = S3Client::factory(array(
'key' => 'Key',
'secret' => 'privatekey',
'region' => 'eu-west-1'
));
try {
// Upload data.
$result = $s3->putObject(array(
'Bucket' => $bucket,
'Key' => $keyname,
'SourceFile' => $filepath,
'ACL' => 'public-read',
'ContentType' => 'image/jpeg'
));
// Print the URL to the object.
echo $result['ObjectURL'] . "\n";
} catch (S3Exception $e) {
echo $e->getMessage() . "\n";
}
?>
这是我收到的错误消息。
注意:在第 242 行 phar:///var/www/s3/aws.phar/Aws/S3/S3Client.php 中使用未定义的常量 CURLE_COULDNT_RESOLVE_HOST - 假设为“CURLE_COULDNT_RESOLVE_HOST” 注意:使用未定义的常量 CURLE_COULDNT_CONNECT - 假设为“CURLE_COULDNT_CONNECT”在 phar:///var/www/s3/aws.phar/Aws/S3/S3Client.php 第 242 行 注意:使用未定义的常量 CURLE_PARTIAL_FILE - 在 phar:///var/www/s3/ 中假定为“CURLE_PARTIAL_FILE” aws.phar/Aws/S3/S3Client.php 第 242 行注意:在 phar:///var/www/s3/aws.phar/Aws/S3/S3Client.php 中使用未定义的常量 CURLE_WRITE_ERROR - 假设为“CURLE_WRITE_ERROR”第 242 行注意:第 242 行 phar:///var/www/s3/aws.phar/Aws/S3/S3Client.php 中使用未定义的常量 CURLE_READ_ERROR - 假定为“CURLE_READ_ERROR” 注意:使用未定义的常量 CURLE_OPERATION_TIMEOUTED - 假定为 ' Phar:///var/www/s3/aws.phar/Aws/S3/S3Client.php 第 242 行中的 CURLE_OPERATION_TIMEOUTED' 注意:使用未定义的常量 CURLE_SSL_CONNECT_ERROR - 假定 phar:///var/www/ 中的“CURLE_SSL_CONNECT_ERROR” s3/aws.phar/Aws/S3/S3Client.php 第 242 行注意:使用未定义的常量 CURLE_HTTP_PORT_FAILED - 在 phar:///var/www/s3/aws.phar/Aws/S3/S3Client 中假定为“CURLE_HTTP_PORT_FAILED”。 php 第 242 行注意:使用未定义的常量 CURLE_GOT_NOTHING - 在 phar:///var/www/s3/aws.phar/Aws/S3/S3Client.php 第 242 行注意:使用未定义的常量 CURLE_SEND_ERROR - 假定为“CURLE_GOT_NOTHING”在第 242 行 phar:///var/www/s3/aws.phar/Aws/S3/S3Client.php 中假设为“CURLE_SEND_ERROR”注意:使用未定义的常量 CURLE_RECV_ERROR - 在 phar:///var/ 中假设为“CURLE_RECV_ERROR” www/s3/aws.phar/Aws/S3/S3Client.php 第 242 行致命错误:未捕获异常“Guzzle\Common\Exception\RuntimeException”,消息“必须安装 PHP cURL 扩展才能使用 Guzzle”。在 phar:///var/www/s3/aws.phar/Guzzle/Http/Client.php:70 堆栈跟踪:#0 phar:///var/www/s3/aws.phar/Aws/Common/Client /AbstractClient.php(78): Guzzle\Http\Client->_构造('//s3-eu-w...', Object(Guzzle\Common\Collection)) #1 phar:///var/www/s3/aws.phar/Aws/Common/Client/ClientBuilder.php (252): Aws\Common\Client\AbstractClient->_construct(对象(Aws\Common\Credentials\Credentials), 对象(Aws\S3\S3Signature), 对象(Guzzle\Common\Collection)) #2 phar:///var/www/s3/aws.phar/Aws/ S3/S3Client.php(206): Aws\Common\Client\ClientBuilder->build() #3 /var/www/s3/index2.php(19): Aws\S3\S3Client::factory(Array) #4 {main} 抛出在 phar:///var/www/s3/aws.phar/Guzzle/Http/Client.php 第 70 行
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)