AWS S3 上传存储桶 - 资源类型无效

Posted

技术标签:

【中文标题】AWS S3 上传存储桶 - 资源类型无效【英文标题】:AWS S3 Upload Bucket - Invalid resource type 【发布时间】:2013-08-03 16:47:10 【问题描述】:

我正在尝试使用我在 Plesk 上运行的应用程序升级文件 (putObject),来自 Amazon 的 Zend 1.0 + SDK 2.0 但返回以下错误:

致命错误:在 /var/www/vhosts/domain/library/Amazon/Guzzle/Http/EntityBody.php:50 中未捕获异常 'Guzzle\Common\Exception\InvalidArgumentException' 并带有消息 'Invalid resource type' 堆栈跟踪: #0 /var/www/vhosts/domain/library/Amazon/Aws/Common/Client/UploadBodyListener.php(85): Guzzle\Http\EntityBody::factory(false) #1 [内部函数]: Aws\Common\ Client\UploadBodyListener->onCommandBeforePrepare(Object(Guzzle\Common\Event)) # ...

下载文件(GetObject)正常工作。 感激不尽

【问题讨论】:

您的 PutObject 代码是什么样的?从这个错误来看,您指定参数的方式似乎有些不正确。 检查它在那里解决了。 ***.com/questions/1165122/… 这通常发生在您的对象不存在或已损坏,或者与您认为的不完全一样时...但是您需要与代码共享更多信息,以便人们能够帮助你! 你有没有想过这个问题?我正在保存同样的问题。 我也面临同样的问题。有人能解决这个问题吗? 【参考方案1】:

这可能是字符编码问题。

我在 mysql 数据库和 DynamoDB 之间传输一些文本字段时遇到了类似的问题。 é 等某些特殊字符不是有效的 UTF-8 字符。即使它们被替换为替换字符 (),由于某种原因,这会引发致命错误。我最终不得不在将所有字段放入数据库之前检查所有字段并将编码转换为 ASCII(这是所有其他字符串设置为的类型)。没有使用 替换未知字符,而是使用了?,因此它不是一个“好的”修复,但它确实防止了脚本崩溃。

这是我最好的猜测,因为我所要做的就是错误与我得到的错误相似。并且看到这个问题很老,我想我会尝试回答它,以防其他人像我一样遇到这个问题。

【讨论】:

以上是关于AWS S3 上传存储桶 - 资源类型无效的主要内容,如果未能解决你的问题,请参考以下文章

无法使用回形针导轨上传到S3 5.配置选项无效:存储桶

AWS S3 在 getSignedUrl 过期后优雅地处理 403

[AWS][安全] S3存储桶策略-Bucket Policy

AWS S3 存储桶 CORS 策略错误:请求的资源上不存在“Access-Control-Allow-Origin”标头

从 Amazon AWS s3 存储桶错误获取 Html5:请求的资源上不存在“Access-Control-Allow-Origin”标头

AWS S3 上传。根据政策无效:政策已过期