AWS S3分段上传在不指定源文件时工作

2024-01-09

我已经构建了一个 ajax 上传器,可以将文件直接上传到 S3,它运行完美,但我感到困惑的是它实际上是如何工作的。我对文档中的显示方式采取了不同的方法,不是指定 sourceFile,而是在元数据中指定文件名。没有发送文件位置。

我在用着AWS SDK 2.4.3

$client = S3Client::factory(array(
    'key' => AWS_KEY,
    'secret' => AWS_SECRET
));

$extension = pathinfo($this->request->query['fileInfo']['name'], PATHINFO_EXTENSION);

$model = $client->createMultipartUpload(array(
    'Bucket' => AWS_BUCKET_NAME,
    'Key' => uniqid() . '.' . $extension, // Files don't share same name
    'ContentType' => $this->request->query['fileInfo']['type'], // image/png
    'Metadata' => $this->request->query['fileInfo']
));

$this->请求->查询['fileInfo']

array(
    'name' => "image.png", 
    'type' => "image/png", 
    'size' => 196292, 
    'lastModifiedDate' => Wed Aug 20 2014 15:02:29 GMT+1200 (NZST)
);

登录上传部分

$command = $client->getCommand('UploadPart',
    array(
    'Bucket' => AWS_BUCKET_NAME,
    'Key' => $this->request->query['sendBackData']['key'], // 53fd39a185f43.png
    'UploadId' => $this->request->query['sendBackData']['uploadId'], // hSJuBm3dWCMM1b....
    'PartNumber' => $this->request->query['partNumber'],
    'ContentLength' => $this->request->query['contentLength']
));
$request = $command->prepare();
$client->dispatch('command.before_send', array('command' => $command));
$request->removeHeader('User-Agent');
$request->setHeader('x-amz-date', gmdate(DateFormat::RFC2822));
$client->dispatch('request.before_send', array('request' => $request));

任何地方都没有对临时文件路径的引用,我尝试过深入研究 SDK,但似乎找不到任何显示查找文件方法的内容。此外,由于这是通过 AJAX 发送的,因此不会创建临时文件。

删除Metadata ContentType并分配一个随机数Key in the CreateMultipartUpload仍然上传文件,只是以 Key 中指定的名称结束...让另外两个开发人员查看它,但都无法弄清楚它是如何工作的。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AWS S3分段上传在不指定源文件时工作 的相关文章

  • Woocommerce 让产品显示在存档页面中

    我正在尝试让所有产品显示在我商店的存档页面中 我想知道他们的id我正在使用我的一个钩子 它在 wp head 上运行并检查 if is product category 我想以某种方式访问 产品的查询并获取它们的 ID if is prod
  • PHP严格标准:声明应该兼容

    我有以下类层次结构 class O Base class O extends O Base abstract class A Abstract public function save O Base obj class A extends
  • 将“php”作为 shell 脚本执行时的自定义 php.ini 文件

    我在跑php作为 shell 脚本 我不确定 shell脚本 是否正确 该文件以 usr bin php 这很好用 但 MongoDB 类没有正确加载php ini文件 具有extension mongo so 未使用 我该如何使用它tha
  • 是否可以使用 PHP 重定向发送 POST 数据?

    更新 这不是重复的如何使用 PHP 发送 POST 请求 https stackoverflow com questions 5647461 how do i send a post request with php 那里的解决方案对我不起
  • JSF - 在 ajax 调用上传递参数 - 这段代码有什么问题?

    当我进行 ajax 调用时 我需要将参数传递给 bean 我的豆子是这样的 ManagedBean RequestScoped public class Selector ManagedProperty value param page p
  • 学说迁移后备

    我们正在使用原则迁移 当迁移包含多个操作并且其中一个操作失败时 通常会出现问题 例如 如果迁移添加了 5 个外键 其中第 5 个失败 而字段长度不同 则修复字段错误并重新生成迁移不会not修复整个问题 而现在出现一个与 4 个密钥已存在有关
  • preg_match_all 查询仅显示有问题的外部组

    我无法弄清楚如何只显示 preg 查询的外部组级别 我会给你一个例子 preg match all start end input matches 这个输入start1 start2 2end 1end产生这个输出start1 start2
  • jqgrid删除:没有获取值

    我使用 JSP 和 Servlet IDE Eclipse 数据库 Oracle10 开发 Web 应用程序 我在用JQGRID以表格格式显示数据 我还想要添加 编辑 删除的功能JQGRID 到目前为止我已经完成了编辑功能 现在我想要Del
  • MySQL 追加字符串

    How can I append a string to the end of an existing table value Let s say I have the table below And let s say that Mari
  • AWS Lambda 似乎在完成之前退出

    我有一个非常简单的 lambda 函数 nodeJS 它将接收到的事件放入 kinesis 流中 这是源代码 use strict const AWS require aws sdk const kinesis new AWS Kinesi
  • 在 Wordpress 站点中进行 AJAX 调用时出现问题

    我在使用 Wordpress 站点功能的 AJAX 部分时遇到了一些问题 该功能接受在表单上输入的邮政编码 使用 PHP 函数来查找邮政编码是否引用特定位置并返回到该位置的永久链接 我的第一个问题是关于我构建的表单 现在我的表单操作是空白的
  • 覆盖控制器 Symfony 3.4/4.0

    我目前正在尝试覆盖 FOSUserBundle 中的控制器 在新的文档中 https symfony com doc 3 4 bundles override html https symfony com doc 3 4 bundles o
  • 通过 $_SESSION 从一个脚本发送到另一个脚本期间数据丢失

    我正在尝试将一个充满属性的对象从一个 PHP 发送到另一个 PHP SESSION object obj where obj是一个用 foreach 循环指定的对象 foreach array of objects as obj SESSI
  • PHP 中只保留数组的前 N ​​个元素? [复制]

    这个问题在这里已经有答案了 有没有办法只保留数组的前 N 个 例如 10 个 元素 我知道有array pop 但是有没有更好 更优雅的方法呢 您可以使用array slice http php net array slice or arr
  • 跟踪用户何时点击浏览器上的后退按钮

    是否可以检测用户何时单击浏览器的后退按钮 我有一个 Ajax 应用程序 如果我可以检测到用户何时单击后退按钮 我可以显示适当的数据 任何使用 PHP JavaScript 的解决方案都是优选的 任何语言的解决方案都可以 只需要我可以翻译成
  • PHP HEREDoc (EOF) 语法在 Sublime Text 3 上突出显示与正斜杠的差异

    我不熟悉 Sublime Text 3 如何使用语法突出显示 例如 如果它纯粹依赖于主题 或者它内置于主题运行的标准中 但就我而言 使用 PHP 的 HERE 文档和转发存在一些语法突出显示差异斜线 一旦出现正斜杠 ST3 就会认为以下所有
  • 在 VPC 内从 Lambda 访问 AWS S3

    总的来说 我对在 VPC 中使用 AWS Lambda 感到非常困惑 问题是 Lambda 在尝试访问 S3 存储桶时超时 解决方案似乎是 VPC 端点 我已将 Lambda 函数添 加到 VPC 以便它可以访问 RDS 托管数据库 下面的
  • CURL 中的 data-urlencode 是什么意思?

    我搜索了很多个小时试图弄清楚 php curl 中的 data urlencode 是什么 我尝试过这个 但我认为这是不对的 xmlpost object1 file https www lob com goblue pdf 在文档中是 d
  • 为什么 Composer 降级了我的包?

    php composer phar update这样做了 删除了 2 3 0 软件包并安装了整个 2 2 5 Zend Framework php composer phar update Loading composer reposito
  • 如何使用 Docker for Mac 向 docker awslogs 驱动程序提供凭证?

    我正在尝试使用泊坞窗awslogs 驱动程序 https docs docker com engine admin logging awslogs 并收到以下错误 docker 来自守护程序的错误响应 无法初始化日志记录 驱动程序 NoCr

随机推荐

  • Dart 使用 json_serialized 解析 json 到/从 json 库类

    我正在与地理编码库 https pub dev packages geocoder扑腾中 当我得到一个Address https pub dev documentation geocoder latest model Address cla
  • 向 PHP 对象内的数组添加值

    我有这个对象 myobject object name gt value gt id gt 我想在 foreach 循环中添加一些值 但数组推送似乎不起作用 我试过这个 object name myobject gt name array
  • 无论列的顺序如何聚合

    我想按两列聚合一个数据框 以便这些变化仅存在一次 值列应该由聚合函数聚合 例如max or sum Data itemID1 itemID2 value B0001 B0001 1 B0002 B0001 1 B0001 B0002 2 B
  • rmi java.security.policy 访问被拒绝

    我是 Java 中的 RMI 主题新手 我想使用 RMI 创建客户端服务器应用程序 我按照此链接中找到的本教程进行操作 使用 eclipse 的 RMI 教程 http www ejbtutorial com java rmi a step
  • 分组并计算 Javascript 数组中属性的平均值

    我很难在其他 stackoverflow 帖子中找到我正在寻找的解决方案 尽管我强烈地觉得它必须存在 如果是的话 请把我转发到正确的方向 我正在尝试使用运动数据在 javascript 中做一个非常标准的分组 我有以下对象数组 const
  • 如何在Python中拆分数学表达式的字符串?

    我制作了一个在 python 中将中缀转换为后缀的程序 问题是当我介绍论点时 如果我引入这样的内容 这将是一个字符串 73 34 72 33 3 56 95 28 它会用 split 分割它 程序将正常工作 但我希望用户能够介绍这样的内容
  • iOS 6 社交框架无法设置或没有警报

    我正在尝试在 iOS6 中实现新的社交框架 并让它正常工作 除了两个奇怪的问题 如果我启用了我感兴趣的服务 例如 FaceBook 那么它就可以正常工作 但是 如果从设置面板 假设是 Facebook 为了保持一致 中删除了帐户 那么我会在
  • 如何在 MATLAB 的 bar3 图中隐藏零值

    我有一个 2 D 直方图 该图是 3D 的 几个并排绘制的直方图 是用 bar3plot 命令生成的 然而 所有零值在 x y 平面上都显示为平面正方形 有没有办法阻止 MATLAB 显示这些值 我已经尝试用 NaN 替换所有零 但它并没有
  • 如何在 OpenUrl 卡操作中回复消息?

    我正在发送带有 openURL 的 cardAction 用户应该单击该按钮 按照所述 URL 中的说明进行操作 然后报告数据 我想要显示一条消息when用户单击按钮 同时打开 URL 根据我的测试 我只能选择 ImBack 或 OpenU
  • 如何在 Google Cloud BigQuery 中小写整个列数据

    我正在尝试找到一种 快速 方法来小写 Google Cloud BigQuery 内表列中的所有数据 字符串 在构建脚本之前 我正在寻找更短的方法 例如查询 如何查询 BigQuery 以小写整个列 您可以使用UPDATE陈述 UPDATE
  • MySQL UPDATE 和 SELECT 一次性完成

    我有一个要执行的 MySQL 任务表 每一行都有一个任务的参数 有许多工作应用程序 可能在不同的机器上 循环执行任务 这些应用程序使用 MySQL 的本机 C API 访问数据库 为了拥有一项任务 应用程序会执行以下操作 生成一个全局唯一的
  • 类型参数命名准则是什么?

    我注意到了 也看到了必备 C 3 0 https rads stackoverflow com amzn click com 0321533925书上 参数通常定义为T or TEntity 例如 public class Stack
  • !: Angular 中的(爆炸冒号)表示法

    I found 中使用的符号Angular 弃用文档 https angular io guide deprecations dependency on a reflect metadata polyfill in jit mode Inp
  • TextField 包含日语字符时缺少字体样式

    将字符串传递给视图 Case 1 English alphabet is no problem test deck ABCDE Case 2 Font style is missing test deck Case 3 Font style
  • 用于比较 Windows 二进制文件的工具?

    我们的 QA 团队希望根据 EXE 和 DLL 在构建之间实际发生的变化来集中测试 我们有一个很好的 svn 更改报告 但是源代码和更改的二进制文件之间的关系并不总是很明显 我们正在比较的构建始终是完全干净的构建 因此我们不能使用文件系统时
  • Python 基础知识 为什么 set() 有效但 {} 失败? [复制]

    这个问题在这里已经有答案了 s this that this 为什么set s 工作但是 s 失败了 TypeError unhashable type list 这是因为它们意味着不同的东西 set s 迭代s创建一个集合 而文字语法 s
  • 如何定期使用 PAPI 进行性能测量

    我想使用 C 中的 PAPI api 分析我的应用程序的系统性能 一般结构是 初始化PAPI 初始化感兴趣的计数器 启动计数器 运行应用程序的主要逻辑 结束计数器并读取值 我想定期读取计数器 例如每 1 秒一次 而不是在应用程序结束时读取最
  • OData 筛选器和 Guid 字段的问题

    我正在尝试使用 OData 来运行一些代码 下面的代码似乎不起作用 ds是 OpenDataServiceProxy 适配器类型 ID是 Guid 的字符串表示形式 适配器名称是一个字符串名称 ds query DataAdapters f
  • 如何解决 Node.js 错误:找不到模块?

    当我启动一个 dockerized Node js 测试应用程序时 sudo docker compose up 我收到以下错误 Starting testapp web 1 done Attaching to testapp web 1
  • AWS S3分段上传在不指定源文件时工作

    我已经构建了一个 ajax 上传器 可以将文件直接上传到 S3 它运行完美 但我感到困惑的是它实际上是如何工作的 我对文档中的显示方式采取了不同的方法 不是指定 sourceFile 而是在元数据中指定文件名 没有发送文件位置 我在用着AW