【发布时间】: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