试图在亚马逊s3中保存图像,但图像没有得到保存

时间:2013-12-03 23:29:27

标签: php image amazon-web-services amazon-s3

我正在尝试将图像从图像网址保存到亚马逊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";

这是生成的图像路径https://s3.amazonaws.com/smmrescueimages/gt.jpg

1 个答案:

答案 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);
}