amazon web services -使用aws sdk php上传图像到s3 bucket usket


amazon web services - Uploading image to s3 bucket usket using aws sdk php

我正在尝试使用以下代码将文件从php代码移动到s3桶:

  $bucket = "bucket-name";
        $s3 = S3Client::factory(array(
            'key'    => 'xxxxxx',
            'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx'
        ));

            $baseImageUrl = "http://www.xxxxx.com/banner_mobile.jpg";
            $keyname = "31.jpg";
            try {
            // Upload data.
            $result = $s3->putObject(array(
                 'Bucket'       => $bucket,
                'Key'          => $keyname,
                'Body'   => $baseImageUrl,
                'ContentType'  => 'image/jpg',
                'ACL'          => 'public-read'
            ));
            // Print the URL to the object.
            echo $result['ObjectURL'] . "'n";
            } catch (S3Exception $e) {
                echo $e->getMessage() . "'n";
            } catch(Exception $ex){
                echo $ex->getMessage()."'n";
            }

一个空文件(或损坏的文件)被上传到s3桶。图片实际大小为37KB,但上传的文件大小为40B。这是什么原因呢?

看起来你是在插入url作为文件的主体,所以你上传的是带有文本的图像文件,如果你想上传该文件,你需要有文件的路径或内容