我已经为php安装了amazon aws SDK。我正在尝试将服务器上的文件上传到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是文件的路径。
答案 0 :(得分:4)
试试这个: 'Body' => fopen($pathToFile, 'r+')
传递一个包含正文的字符串,一个由fopen返回的句柄,或者一个 Guzzle \ Http \ EntityBodyInterface对象