2016-11-28 42 views
0

WordpressアプリケーションからS3バケットにAjaxでファイルをアップロードしようとしています: どういうわけか、回答が得られず、 'putObject ' 方法。AWS S3にアップロードできません

APP/ajax.php

require_once 's3/start.php' 
//wp_die(var_dump($s3)); Seems to be fine 
$upload = $s3->putObject([ 
    'Bucket' => $config['s3']['bucket'], 
    'Key' => 'video, 
    'Body' => fopen($_FILES['file']['tmp_name'], 'r'), 
    'ACL' => 'public-read', 
]); 
if ($upload) { 
    wp_die('Uploaded'); 
} else { 
    wp_die('Upload Error'); 
} 

APP/S3/start.php

use Aws\S3\S3Client; 
require 'aws/aws-autoloader.php'; 
$config = require('config.php'); 
$s3 = new S3Client([ 
    'key'  => $config['s3']['key'], 
    'secret' => $config['s3']['secret'], 
    'region' => $config['s3']['region'], 
    'version' => 'latest', 
]); 

APP/S3/AWS

Latest version of the official AWS SDK for PHP 

解決方法 $ s3オブジェクトを初期化するときに正しく割り当てられていないapp/start.phpの認証情報。それはそれはあなたがファイルをアップロードする場合は、あなたの代わりにBodySourceFileを使用する必要があります

$s3 = S3Client::factory([ 
'region' => $config['s3']['region'], 
'version' => 'latest', 
'credentials' => [ 
    'key' => $config['s3']['key'], 
    'secret' => $config['s3']['secret'] 
] 
]); 

答えて

1

のように見えなければならない方法です。

コード例:ここから

$result = $s3->putObject(array(
     'Bucket'  => $bucket, 
     'Key'   => $keyname, 
     'SourceFile' => $filepath, 
     'ContentType' => 'text/plain', 
     'ACL'   => 'public-read', 
     'StorageClass' => 'REDUCED_REDUNDANCY', 
     'Metadata'  => array( 
      'param1' => 'value 1', 
      'param2' => 'value 2' 
     ) 
    )); 

詳細情報 - http://docs.aws.amazon.com/AmazonS3/latest/dev/UploadObjSingleOpPHP.html

+0

はちょうどそれを試してみましたが、まだ動作していません。 wp_dieと テスト()私は次のような結果を得る: $バケット=>正しいバケット名を、 $キー=>正しいキー名、 $ファイルパス=> 'を/ tmp/phpNKgE0e' –

+0

iI'veだけの検査オブジェクトメソッドはvar_dump(get_class_methods($ s3))であり、putObjectメソッドはありません –

+0

Ah - 2つのことをしてください1) 'ini_set()'と 'error_reporting()'を使ってすべてのエラーを出力できますか?それは間違いなくあなたを助けるでしょう。 2)あなたのクライアント接続も無効であるように見えますが、 'key'と' secret'は通常 'credentials 'の中にネストされます。この資格情報の部分については、このドキュメント(https://docs.aws.amazon.com/aws-sdk-php/v3/guide/guide/configuration.html)を参照してください。 – Chainat

関連する問題