使用 PHP SDK 在亚马逊 S3 上上传文件

2024-04-27

我正在尝试通过 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(使用前将#替换为@)

使用 PHP SDK 在亚马逊 S3 上上传文件 的相关文章

  • 扩展策略中的AWS ASG冷却期和预热期有什么区别?

    AWS ASG 冷却期 当我想要更新自动扩展组时可以编辑该冷却期 和扩展策略中的预热期之间有什么区别 冷却时间可以防止失控的缩放事件 如果您的系统在 CPU 上运行较高 并且您的自动扩展规则添加了一个实例 则该实例将需要 5 分钟左右的时间
  • 将子域重定向到 CakePHP 操作

    背景 我有一个 CakePHP 应用程序 位于 m 我想写一个根级别的 htaccess文件 它将重定向网站的 子域 作为操作的参数 例如 我想编写一个重写规则 这将导致像这样的重定向 http mysite myserver com ht
  • PHP中如何替换字符串?

    我有一个变量 其中包含如下所示的字符串 p The post a href http zed1 com journalized archives 2012 03 11 wordpress 3 for business bloggers Wo
  • 使用 PHP 正则表达式从字符串中提取年份[重复]

    这个问题在这里已经有答案了 我想从字符串中提取年份 我得到了一个不完整的解决方案 我的字符串总是这样 请将爵士乐 2014 和 2015 的 mpg 发送至我的手机号码 123456789 我尝试过以下正则表达式 preg match al
  • PDO 如何在执行 rollBack() 函数之前回滚查询?

    这是我的脚本 try dbh con gt beginTransaction stmt1 dbh conn gt prepare UPDATE activate account num SET num num 1 stmt1 gt exec
  • 准备好的声明不返回任何内容

    我知道这个特定的查询是有效的 因为我用未经准备的过程方法测试了它 这里是 name introduction mysqli new mysqli localhost user pass db or die There was a probl
  • 如何在 phpfarm php 安装上安装 pthreads

    记录我为帮助他人所做的努力 并希望得到一些关于我如何做得更好的反馈 命令pecl install pthreads由于我的 php 安装失败ubuntu 13 04盒子没有配置 zts Options 1 ubuntu存储库没有启用zts的
  • PHP json_encode 将多个数组编码为一个对象

    我试图在一个 JSON 对象中返回多个数组 但在语法上遇到一些困难 一款 Android 应用程序从多个表接收更新 我希望在一个响应中返回这些更新 目前 这就是我对各种结果集进行编码的方式 json json encode array ta
  • 如何使用 PHP SoapClient 添加任意命名空间?

    如何使用 PHP SoapClient 添加任意名称空间 命名空间实际上并未在请求中使用 但我认为它阻止了我的消息被正确使用 WSDL 在这里 http abr business gov au abrxmlsearchRPC ABRXMLS
  • 即使 is_dir 是一个目录,它也会返回 false 吗?

    为什么 is dir 即使是一个目录也会返回 false 没有返回错误 path mysql var lib mysql if is dir path mysql echo error 返回错误 path mysql var lib mys
  • 使用 ecs-cli 在 AWS 上部署 docker 时遇到问题

    我在 ECS 上有一个存储库 已使用 ecs cli 创建了一个集群 ecs cli configure region us west 2 profile
  • S3 存储桶可以生成自己的对象键名称吗?

    我正在将 Amazon API Gateway 配置为 S3 存储桶的代理 理想情况下 我希望客户端能够将文件发布到存储桶 让 S3 为其分配一个文件名 然后在响应中返回该名称 我不想让客户端能够指定文件名 这可能吗 设置代理的文档根本没有
  • Yii2 - 如何在用户身份中设置动态 authTimeout?

    在这里 我扩展了UserYii2 的身份 这是我的配置 user gt identityClass gt app models UserMaster class enableAutoLogin gt false loginUrl gt au
  • 如何在 MySQL 中使用 INET_ATON 进行通配符搜索 IP 地址?

    我发现这个方法可以使用 INET ATON 将 IP 地址作为整数存储在 MySQL 数据库中 https stackoverflow com a 5133610 4491952 https stackoverflow com a 5133
  • 使用 PHP 将子项添加到 XML 文件

    添加子项时 抛出此错误 无法添加孩子 父级不是 XML 树的永久成员 我无法解决这个问题 这是我的代码 if visited FIRST xml new SimpleXMLElement
  • CKEditor TypeError:c[a] 在 CodeIgniter 中未定义

    我正在尝试在基于 codeigniter 的网站中安装 CKEditor 并且我已按照本教程进行操作 Codeigniter 教程中的 CKEditor http nukium com developpement php framework
  • CodeIgniter:使用多维 POST 数据验证表单

    所以框架是CodeIgniter 2 0 2 我有一个表单 其中包含与数据库中的行相对应的字段组 字段名称的格式为 opt 0 foo opt 0 bar opt 1 foo opt 1 bar etc 索引 1 2等 并不对应于数据库中的
  • 日期函数的奇怪行为

    我今天在 StackOverflow 上遇到了这个问题 但没有得到答案 我的问题是 echo date Y m d strtotime 2012 september 09 output 2012 09 01 echo date Y m d
  • 在 Laravel 视图中使用 CSS?

    我刚刚开始学习 Laravel 并且可以掌握控制器和路由的基础知识 我的操作系统是 Mac OS X Lion 它位于 MAMP 服务器上 我的routes php代码 Route get function return View make
  • 使用 php 变量更改 css 类

    这里需要您的帮助 正如标题所示 我正在尝试使用 PHP 变量更改 css 类 所以基本上我想创建一个回显某些代码的循环 但我希望第一个循环中的 div 类有所不同 它应该被隐藏 这是我为使问题变得清晰而编写的简化代码 我不知道错误在哪里 请

随机推荐

  • Typescript 和 React:使用解构的事件处理程序的正确类型是什么?

    当我在 React 中使用事件处理程序时 我遇到了 Typescript 严格性的问题 具体来说 我无法使用对象解构handleClick 进行的功能onClick handleClick 属性 这是不干净的版本 它是唯一一个打字稿没有抱怨
  • 与 grep 类似地突出显示文本,但不过滤掉文本[重复]

    这个问题在这里已经有答案了 使用 grep 时 它将突出显示与正则表达式匹配的行中的任何文本 如果我想要这种行为 但同时让 grep 打印出所有行怎么办 快速浏览完 grep 手册页后 我发现一无所获 使用确认 看看它的 passthru此
  • 套接字对和一对无名管道有什么区别吗?

    我不仅想知道用户端的差异 还想知道 Linux 内核实现中的差异 共同部分 管道是单向的 因此需要两个管道才能进行双向通信 而套接字对是双向的 管道始终是面向流的 而套接字对可以是面向数据报的 套接字对正常AF UNIX套接字 这意味着辅助
  • Groovy 语言书籍/教程 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 为什么 PHP 中加密的内容与 Ruby 中加密的相同字符串不匹配?

    这是我的要求 我需要使用 AES 加密 包括随机 iv 对 PHP 中的字符串进行加密 对其进行 Base64 编码 然后对其进行 URL 编码 以便可以将其作为 URL 参数传递 我试图在 PHP 和 Ruby 中获得相同的结果 但我无法
  • 我应该使用 Facelets“jsfc”属性吗?

    Facelets 使用jsfc属性将 HTML 元素转换为其关联的JSF成分 这对于快速原型设计非常有帮助 因为它允许您使用可视化设计工具创建视图 然而我最近发现this http weblogs java net blog 2008 12
  • support-library-v7 上的 ClassCastException,使用版本 21

    背景 在过去的两周里 我一直将我的应用程序从 ActionBarSherlock 转移到 Google 的官方支持库 以获得 Material Design 风格 我已经更新到最新版本 21 并且包含了 v4 和 v7 My app htt
  • 是什么让 jQuery 对象在 Chrome 开发工具中显示为数组?

    我想知道 jQuery 对象如何在 Chrome 开发者工具的控制台日志中显示为数组 例如 如果我执行 a 我在控制台日志中看到的是 a a 但以下说法是错误的 var a a Array isArray a false a instanc
  • 实体框架:如何检测数据库的外部更改

    我有一个存储过程可以更改数据库中的大量数据 该存储过程是从同时使用 EF 进行数据操作的应用程序调用的 因此 我单击一个按钮 存储过程在数据库中运行 数据发生更改 并且 EF 向用户显示旧数据 有没有办法强制 DbContext 或 Obj
  • 有条件地使用文件夹大小

    我只想在大小大于特定大小时删除文件夹 不幸的是我无法达到想要的结果stat module Attempt hosts pluto tasks stat path home ik thunderbird register folder nam
  • 无法放弃 git 中的更改

    一两周前 我拿了一些文件 这些文件是我用一个简单的程序存档的find sed tar xz gpgbash 脚本 将它们全部解压 并将它们的内容放入 git 存储库中 提交 将下一个档案内容放入存储库中 提交 冲洗并重复 以便拥有一个更好的
  • 按日期顺序排列的 T-SQL 查询组(间隙和孤岛)

    我有一个这样的示例表 CREATE TABLE Aggregate vKey INT dKey INT StartTrip DATETIME EndTrip DATETIME Distance INT 像这样的一些样本数据 INSERT I
  • 如何解决大内容的角度性能问题

    我熟悉 Angular 的摘要周期以及它如何影响长列表和大模型值的性能 我只是好奇您是否有专门针对我的情况的问题的解决方法 我正在构建一个应用程序 它可能需要也可能不需要用户输入大文本 例如错误日志textarea 但由于与 2 路数据绑定
  • R Studio:更改光标颜色

    我在 R Studio 中使用 Cobalt 编辑器主题 通过更改相应的 cache css 文件对其进行了稍微调整 背景颜色是深色的 我的选择 但文本光标 鼠标指针 也是深色的 因此很难看到 在哪里或如何将鼠标指针颜色更改为例如 cach
  • 在同一节点上匹配不同配置的模板

    我问了我的整个问题这里关于堆栈溢出 https stackoverflow com questions 64966059 nesting xsl templates and referring multiple templates to t
  • AppBarLayout 滚动时 RecyclerView fling 导致延迟

    我的布局如下
  • 在 dplyr 链中传递价值

    假设我有以下列 CurrentStatus Current NoChange NoChange NoChange NoChange Late 我想改变它 以便如果该值为 NoChange 则它使用先前的值 I tried myDF gt m
  • 通过存储过程将记录传输到目标表后,从源表中删除记录

    这是我在 user75ponic 的帮助下生成的存储过程 CREATE OR REPLACE PROCEDURE ARCHIVE DATA AS BEGIN MERGE INTO Schema2 table trg USING SELECT
  • Objective C:如何从 appdelegate 呈现模态视图控制器?

    我在我的应用程序的 appdelegate 中 如何在 didfinishlaunching 方法中添加模式视图控制器 我尝试了以下方法但没有成功 SomeViewController vc SomeViewController alloc
  • 使用 PHP SDK 在亚马逊 S3 上上传文件

    我正在尝试通过 PHP SDK 在我的亚马逊 S3 存储桶上上传文件 但是我的脚本不起作用 我有一个空白页面 没有任何错误或异常消息 编辑 在 php ini 中启用 display error 后 我有下面的错误消息 看起来 sdk 在我