【问题标题】:Amazon S3 Bucket Upload all files emptyAmazon S3 存储桶上传所有文件为空
【发布时间】:2014-11-11 15:43:25
【问题描述】:

我已经安装了 amazon aws SDK for php。我正在尝试将服务器上的文件上传到 s3 存储桶中。所以这是当前的流程,用户上传一张图片,我们保存它,然后我们运行一个裁剪脚本。然后我们将图像全部裁剪并准备好保存在我们的 ec2 实例上。然后我想将此文件传输到 s3 存储桶,以便我可以从服务器上删除它。我的问题是上传过程“有效”,但所有上传的文件都是 20-50 字节大小。下面是我的代码

$s3 = App::make('aws')->get('s3');
$s3->putObject(array(
'Bucket'     => 'images',
'ACL'           => 'public-read',
'Key'        => '/avatars/myImage.jpg',
'ContentType' => 'image/jpeg',
'Body' => $imgUrl
));

这会在我的 amazon s3 存储桶上创建一个具有正确类型、位置和权限的文件。但文件总是 20-50 字节,也就是空的。知道是什么原因造成的吗? $imgUrl 是文件的路径。

【问题讨论】:

  • 上传前文件在服务器上是什么样子的?
  • 如果我手动转到ec2服务器上的文件,在上传时或之后它看起来完全正常,并且不是20-50字节。
  • 试试这个:'Body' => fopen($pathToFile, 'r+')。来自文档:Pass a string containing the body, a handle returned by fopen, or a Guzzle\Http\EntityBodyInterface object
  • 啊啊!!!!有效!非常感谢,你应该发布作为答案。
  • @CalvinMoss,很高兴它成功了。我已将其发布为答案。

标签: php file-upload amazon-web-services amazon-ec2 amazon-s3


【解决方案1】:

试试这个:'Body' => fopen($pathToFile, 'r+')

来自documentation

传递一个包含正文的字符串、fopen 返回的句柄或 Guzzle\Http\EntityBodyInterface 对象

【讨论】:

猜你喜欢
  • 2018-04-12
  • 2018-04-04
  • 1970-01-01
  • 1970-01-01
  • 2015-05-05
  • 2023-04-05
  • 1970-01-01
  • 1970-01-01
  • 2021-12-02
相关资源
最近更新 更多