20156


以下のようなコードを書いているのですが、画像がS３にアップロードされません。  
S３のURLは正常に出力されています。  
詳しい方、ご教示ください。

[code]

    //画像関連
                    $file = date('YmdHis') . $_FILES['top_img']['name'];
                    $img_tmp_name = $_FILES['top_img']['tmp_name'];
                    move_uploaded_file($img_tmp_name, "img/" . $file);
    
                    // Instantiate an Amazon S3 client.
                    $s3 = new S3Client([
                        'version' => '2006-03-01',
                        'region'  => 'ap-northeast-1',
                        'credentials' => [
                            'key' => 'key',
                            'secret' => 'secret',
                        ],
                    ]);
    
                try {
                    $result = $s3->putObject([
                        'Bucket'       => 'bucket',
                        'Key'          => 'img/'.$file,
                    'ContentType'  => 'image/jpeg',
                        'Body'         => fopen('test.php', 'r'),
                    'StorageClass' => 'REDUCED_REDUNDANCY',
                        'ACL'          => 'public-read',
                    ]);
    
                    echo $result['ObjectURL'] . "\n";
                } catch (Aws\Exception\S3Exception $e) {
                    echo "There was an error uploading the file.\n";
                }   
    
[/code]


CC BY-SA 3.0
2015-12-14T09:06:18.590
19964
2015-12-18T08:04:41.703
8619
question
php aws amazon-s3
AWSのS３にphpで画像をアップロード


`putObject` 時に `Body` キーに `fopen('test.php', 'r')`
を代入されているのですが、ファイルをアップロードしたい場合、下記のように `SourceFile`
キーにアップロードしたいファイルのパスを指定する形になるかと思います。

[code]

    $result = $s3->putObject(array(
        'Bucket'       => 'bucket',
        'Key'          => 'img/'.$file,
        'ContentType'  => 'image/jpeg',
        'SourceFile'   => 'img/'.$file,
        'StorageClass' => 'REDUCED_REDUNDANCY',
        'ACL'          => 'public-read',
    ));
    
[/code]

詳細は、AWSのドキュメントを参照してください。  
<http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/UploadObjSingleOpPHP.html>


CC BY-SA 3.0
2015-12-18T08:04:41.703
20156
2015-12-18T08:04:41.703
2944
19964
answer