amazon-s3 - 通过 forge.request.ajax 直接上传 Amazon S3

标签 amazon-s3 trigger.io

我正在尝试使用 S3 的直接上传支持 ( http://aws.amazon.com/articles/1434 ) 将相机媒体从 Trigger 的文件和相机模块上传到 S3。我已经在 native 网络上正常工作了,但是当我在触发器中复制相同的请求时,我收到了 S3 的“MaxPostPreDataLengthExceeded”异常。

我查看了原始请求,看起来一个细微的差异导致了触发器失败。

这是来自 Webkit 的原始 POST 数据:

------WebKitFormBoundaryCl5fCuacIKQjcEfA
Content-Disposition: form-data; name="key"

uploads/2013-08-29/upload.jpeg
------WebKitFormBoundaryCl5fCuacIKQjcEfA
Content-Disposition: form-data; name="AWSAccessKeyId"

...

------WebKitFormBoundaryCl5fCuacIKQjcEfA
Content-Disposition: form-data; name="success_action_status"

201
------WebKitFormBoundaryCl5fCuacIKQjcEfA
Content-Disposition: form-data; name="file"; filename="file.jpg"
Content-Type: image/jpeg

????JFIF??XExifMM?i&??...

这是来自 forge.request.ajax({data: ..., files: [(file object)]}):

--2268A38A1BB344B5BBEE83586818388A
Content-Disposition: form-data; name="key"

uploads/2013-08-30/upload.jpeg
--2268A38A1BB344B5BBEE83586818388A
Content-Disposition: form-data; name="AWSAccessKeyId"

...

--2268A38A1BB344B5BBEE83586818388A
Content-Disposition: form-data; name="success_action_status"

201
--2268A38A1BB344B5BBEE83586818388A
Content-Disposition: file; name="file"; filename="file.jpg"
Content-Type: image/jpg

????JFIF??XExifMM?i&??...

(唯一的)区别是,在使用 FormData 字段的 webkit 中,文件具有 form-data 内容配置。在触发器中,文件具有 file 内容配置。这导致 S3 将文件二进制内容注册为表单的一部分;因此会出现 MaxPostPreDataLengthExceeded 异常和 400 Bad Request 响应。

造成这种差异有原因吗?我在文档中没有看到任何自定义这些文件的内容处置的方法。有这样的办法吗?我需要自己构建这个功能吗?我没有看到 S3 发生变化,那么是否有任何选项可以让它在触发器的功能中工作?

最佳答案

看来这只是触发器上传代码中的一个错误,我刚刚发布了请求模块的更新版本(版本 2.2)来修复此问题。

感谢您对您的问题进行如此详细的描述。

关于amazon-s3 - 通过 forge.request.ajax 直接上传 Amazon S3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18541652/

相关文章:

ios - 我在 Trigger.io 的 iOS 配置中缺少哪一步?

javascript - 如何在 Firefox 中访问 Jetpack 内置扩展的后台页面?

ios - trigger.io 应用程序中有哪些可用/推荐的本地数据库(如果有)?

java - SpringBoot : ServletContext resource cannot resolve S3 URL

amazon-web-services - 为什么我只能将 AWS S3 存储桶事件发送到一个 AWS lambda?

ruby-on-rails - 从 AWS S3 读取 CSV 文件时获取 "Errno::ENOENT: No such file or directory @ rb_sysopen"

python-3.x - Amazon S3 select_object_content 查询调用

trigger.io - trigger.io 中是否有处理 OAuth 的好方法?

trigger.io - getCurrentPosition 不刷新

amazon-web-services - 亚马逊 S3 架构