我正在尝试将图像从图像网址保存到亚马逊s3,但图像在存储桶中创建,但图像未显示在浏览器中,显示消息“图像因为包含错误而无法显示。
这是我的代码: require_once( “AWS / AWS-autoloader.php”);
// Amazon S3
use Aws\S3\S3Client;
// Create an Amazon S3 client object
$s3Client = S3Client::factory(array(
'key' => 'XXXXXXXXXXXX',
'secret' => 'XXXXXXXXX'
));
// Register the stream wrapper from a client object
$s3Client->registerStreamWrapper();
// Save Thumbnail
$s3Path = "s3://smmrescueimages/";
$s3Stream = fopen($s3Path . 'gt.jpg', 'w');
fwrite($s3Stream, 'http://sippy.in/gt.jpg');
@fclose($s3Stream);
echo "done";
答案 0 :(得分:0)
更改此行
fwrite($s3Stream, 'http://sippy.in/gt.jpg');
到
fwrite($s3Stream, file_get_contents('http://sippy.in/gt.jpg'));
否则您将图像二进制文件的url字符串瞬间保存到文件中。
不要使用@
来防止php函数的错误消息!
只检查是否存在有效的处理程序
$s3Stream = fopen($s3Path . 'gt.jpg', 'w');
if( $s3Stream ) {
fwrite($s3Stream, file_get_contents('http://sippy.in/gt.jpg'));
fclose($s3Stream);
}