使用PHP SDK在亚马逊S3上上传已调整大小的图像
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用PHP SDK在亚马逊S3上上传已调整大小的图像,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1641字,纯文字阅读大概需要3分钟。
内容图文
![使用PHP SDK在亚马逊S3上上传已调整大小的图像](/upload/InfoBanner/zyjiaocheng/724/87680bd8e80144598313b2afd7b14e38.jpg)
我有一个脚本,它会调整大小并裁剪图像,我想在我的亚马逊S3上上传图像.
问题是当我尝试运行我的脚本时收到错误消息,因为我猜源文件不被识别为来自磁盘的直接路径($filepath).你有什么想法来解决这个问题吗?
Fatal error: Uncaught exception ‘Aws\Common\Exception\InvalidArgumentException’ with message ‘You must specify a non-null value for the Body or SourceFile parameters.‘ in phar:///var/www/submit/aws.phar/Aws/Common/Client/UploadBodyListener.php:…
$myResizedImage = imagecreatetruecolor($width,$height);
imagecopyresampled($myResizedImage,$myImage,0,0,0,0, $width, $height, $origineWidth, $origineHeight);
$myImageCrop = imagecreatetruecolor(612,612);
imagecopy( $myImageCrop, $myResizedImage, 0,0, $posX, $posY, 612, 612);
//Save image on Amazon S3
require 'aws.phar';
use Aws\S3\S3Client;
use Aws\S3\Exception\S3Exception;
$bucket = 'yol';
$keyname = 'image_resized';
$filepath = $myImageCrop;
// Instantiate the client.
$s3 = S3Client::factory(array(
'key' => 'private-key',
'secret' => 'secrete-key',
'region' => 'eu-west-1'
));
try {
// Upload data.
$result = $s3->putObject(array(
'Bucket' => $bucket,
'Key' => $keyname,
'SourceFile' => $filepath,
'ACL' => 'public-read',
'ContentType' => 'image/jpeg'
));
// Print the URL to the object.
echo $result['ObjectURL'] . "\n";
} catch (S3Exception $e) {
echo $e->getMessage() . "\n";
}
解决方法:
您正在将上载的SourceFile设置为$filepath,该文件路径是从$myImageCrop = imagecreatetruecolor(…)分配的.因此,它实际上并不是一条路径 – 它是一个GD图像资源.您无法直接将这些上传到S3.
您需要将该图像写入文件(使用例如imagejpeg()file_put_contents()),或使用内存中的数据运行上载(同样,从imagejpeg()或类似文件).
内容总结
以上是互联网集市为您收集整理的使用PHP SDK在亚马逊S3上上传已调整大小的图像全部内容,希望文章能够帮你解决使用PHP SDK在亚马逊S3上上传已调整大小的图像所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。