php - Amazon S3 存储桶上传所有文件为空

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

我已经安装了适用于 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
));

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

最佳答案

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

来自documentation

Pass a string containing the body, a handle returned by fopen, or a Guzzle\Http\EntityBodyInterface object

关于php - Amazon S3 存储桶上传所有文件为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25893372/

相关文章:

php - Cakephp 3 : Set virtual property with condition on belongsToMany association

PHP Ajax多文件上传超时或内存限制

PHP move_uploaded_file() 失败,我不知道为什么

PHP - 大整数模计算

php - 我应该在 while 循环中使用准备好的语句吗?

php - 当我使用wp_handle_upload_prefilter,Wordpress时如何输出

python - 将 Django FileField 的内容上传到远程服务器

amazon-web-services - 如何使用 AWS Batch 从私有(private)存储库中拉取 Docker 镜像?

amazon-web-services - 使用 ExecutionRole 从 ECS 任务访问参数存储值时出现问题

amazon-web-services - 如何在不使用 SAM 的情况下使用 AWS code deploy 部署简单的 AWS lambda 函数?