当前位置: 首页 > 知识库问答 >
问题:

使用PHP SDK for Amazon S3时出错

张溪叠
2023-03-14
sudo apt-get install php5-curl
use Aws\S3\S3Client;

$bucket = '*** Your Bucket Name ***';
$keyname = '*** Your Object Key ***';
// $filepath should be absolute path to a file on disk                      
$filepath = '*** Your File Path ***';

// Instantiate the client.
$s3 = S3Client::factory();

// Upload a file.
$result = $s3->putObject(array(
    'Bucket'       => $bucket,
    'Key'          => $keyname,
    'SourceFile'   => $filepath,
    'ContentType'  => 'text/plain',
    'ACL'          => 'public-read',
    'StorageClass' => 'REDUCED_REDUNDANCY',
    'Metadata'     => array(    
        'param1' => 'value 1',
        'param2' => 'value 2'
    )
));

echo $result['ObjectURL'];
use Aws\S3\S3Client;
$s3 = S3Client::factory();

...我得到以下错误:

注意:在第244行phar:///var/www/aws.phar/aws/s3/s3client.php中使用了未定义常量curle_couldnt_resolve_host--假定为“curle_couldnt_resolve_hosts”

注意:未定义常量CURLE_COULDNT_CONNECT的使用--在第244行的phar:///var/www/aws.phar/aws/s3/s3client.php中假定为“CURLE_COULDNT_CONNECT”

注意:未定义常量CURLE_WRITE_ERROR的使用--在第244行的phar:///var/www/aws.phar/aws/s3/s3client.php中假定为“CURLE_WRITE_ERROR”

注意:未定义常量CURLE_READ_ERROR的使用--在phar:///var/www/aws.phar/aws/s3/s3client.php第244行中假定为“CURLE_READ_ERROR”

注意:未定义常量CURLE_OPERATION_TIMEOUTED的使用--在phar:///var/www/aws.phar/aws/s3/s3client.php第244行中假定为“CURLE_OPERATION_TIMEOUTED”

注意:未定义常量CURLE_SSL_CONNECT_ERROR的使用--在第244行的phar:///var/www/aws.phar/aws/s3/s3client.php中假定为“CURLE_SSL_CONNECT_ERROR”

注意:未定义常量CURLE_GOT_NOTHING的使用--在phar:///var/www/aws.phar/aws/s3/s3client.php第244行中假定为“CURLE_GOT_NOTHING”

注意:未定义常量CURLE_SEND_ERROR的使用--在第244行的phar:///var/www/aws.phar/aws/s3/s3client.php中假定为“CURLE_SEND_ERROR”

注意:未定义常量CURLE_RECV_ERROR的使用--在phar:///var/www/aws.phar/aws/s3/s3client.php第244行中假定为“CURLE_RECV_ERROR”

致命错误:未捕获的html" target="_blank">异常'guzzle\common\exception\runtimeException',消息为'PHP cURL扩展必须安装才能使用guzzle'。在phar:////var/www/aws.phar/guzzle/http/client.php:72堆栈跟踪:#0 phar:///var/www/aws.phar/aws/common/client/abstractclient.php(79):guzzle\http\client->__construct('https://s3.amaz...',Object(Guzz\common\collection))#1 3\s3signature),对象(GUZZle\common\collection))#2 phar:///var/www/aws.phar/aws/s3/s3client.php(207):AWS\common\client\clientbuilder->build()#3/var/ww/aws.phar/guzzle/http/client.php中抛出的{main}

共有1个答案

戚甫
2023-03-14

刚刚在我的本地机器上安装了aws php sdk,没有任何aws注册,几个trys获得了以下工作代码:

use Aws\S3\S3Client;

$bucket = '*** Your Bucket Name ***';
$keyname = '*** Your Object Key ***';
// $filepath should be absolute path to a file on disk                      
$filepath = '*** Your File Path ***';

// Instantiate the client.
$s3 = S3Client::factory();
try{

// Upload a file.
$result = $s3->putObject(array(
    'Bucket'       => $bucket,
    'Key'          => $keyname,
    'SourceFile'   => $filepath,
    'ContentType'  => 'text/plain',
    'ACL'          => 'public-read',
    'StorageClass' => 'REDUCED_REDUNDANCY',
    'Metadata'     => array(    
        'param1' => 'value 1',
        'param2' => 'value 2'
    )
));
echo $result['ObjectURL'];

} catch (Exception $e) {
    echo $e->getMessage() . "\n";
}

此代码返回aws异常消息

必须为Body或SourceFile参数指定非空值。

所以如果有任何问题,你是非常欢迎的,但它必须工作。

顺便说一句,如果我从代码中删除catch部分,我会在我的断页上从php得到相同的错误消息。

希望这能对你的情况有所帮助。

 类似资料:
  • 问题内容: 我的代码- 错误- > 警告:mysql_real_escape_string()[function.mysql-real-escape-string]:在C:\ xampp \ htdocs \ shizin \ admin \中拒绝访问用户’ODBC’@’localhost’(使用密码:NO)第48行的newArticle.php 警告:mysql_real_escape_stri

  • 为什么我在使用: mysqli_report(MYSQLI_REPORT_ALL);?致命错误:未捕获异常“mysqli_sql_exception”,在d:\xampp\htdocs\cms\includes\class\db.class.php:31堆栈跟踪:#0 d:\xampp\htdocs\cms\includes\class\db.class.php(31):mysqli->查询(“S

  • 我刚刚在Imac Os 10.6.8上安装了Enthough Corporation。当我尝试测试sklearn时,我收到一条错误消息(附在下面)。错误是:numpy。果心多重数组导入失败。看起来使用的是错误版本的numpy。我不知道怎么修理。 mu51220:~rscherl$python Enthow Canopy python 2.7.3 | 32位|(默认值,2013年6月14日,18:2

  • 我试图使用fromFile,但我得到错误。该文件已经存在,可以用打开,但是如果我用相同的路径打开同一个文件,会出现错误。下面是我的代码: 以下是错误

  • 当我使用Firebase时,我总是遇到这个错误! > 出了什么问题: 任务执行失败:应用程序:transformResourcesWithMergeJavaResForDebug。com.android.build.api.transform。TransformException:com.android.builder.packaging。DuplicateFileException:在APK M

  • 我遇到了一个奇怪的错误,在使用时,我的代码失败了,而不是单独运行时。 以下代码: 打印以下内容: 32.92041129078561(是的,我知道平均误差很差) 但是,当尝试优化参数时,相同的参数设置会产生错误: 结果如下: 为9个候选对象中的每一个匹配3次,总共27次匹配[并行(n_jobs=-1)]:使用后端LokyBackend和8个并发工作人员。[CV]激活=身份,解算器=lbfgs。。。

  • 问题内容: 因此,我在Google上搜索了几分钟如何使用计时器,并在此处找到了一些有用的线程。但是,当我想使用建议的代码时,Eclipse总是向我显示错误。 这是我现在要使用的代码。Eclipse在最后一行下划线,并在它们建议“删除参数以匹配’Timer()’”时加下划线。此外,它强调了start()并希望将其强制转换。:S 有人可以帮我吗?我已经安装了最新的Java版本^^ 多谢。 问题答案: