2016-06-12 11 views
0

私は、正しい資格情報を持っていることを確認するために使用するディレクトリにグローバルヘッダーファイルを持っています。すべてのPHPページにこのヘッダーファイルが含まれています。S3クライアントを使用するPHPのグローバルヘッダー

//Connect to Amazon AWS - Include Amazon AWS SDK - Using PHAR Method 
    require_once($_SERVER['DOCUMENT_ROOT'] . 'php/aws.phar'); 

    // Instantiate the S3 client with hardcoded AWS credentials 
    $s3Client = new Aws\S3\S3Client([ 
     'version'  => 'latest', 
     'region'  => 'us-east-1', 
     'credentials' => [ 
      'key' => 'MY-KEY', 
      'secret' => 'MY-SECRET', 
     ], 
    ]); 

MY-KEYとMY-SECRETは正しいです。

上記のS3クライアントクラスをWebページ全体で使用しようとしていますが、動作しません。上記のコードをヘッダファイルからコピーし、それを関連するPHPドキュメント内にローカルに置くだけで動作するようです。

私が現在作業しているドキュメントは、HTTP POSTでアクションを実行するフォームです。

//Include connection details and check valid credentials 
include_once '../php/header.php'; 

... 

if ($_SERVER['REQUEST_METHOD'] === 'POST') { 
    //Use Amazon S3 Client to upload the file 

    .... //IF THE HEADER CODE IS INSERTED HERE THE CODE WORKS 

    $result = $s3Client->putObject(array(
     'Bucket' => 'MY-BUCKET', 
     'Key' => $filepath, 
     'SourceFile' => $_FILES["file"]["tmp_name"] 
    )); 
} 

誰でも私のヘッダー設定が機能していない理由を説明できます。私はS3クライアントの資格情報を複製したくありません。ありがとう。

+1

「動作しません」と定義する必要があります。エラーは何ですか? – jszobody

+0

putObject関数はまったくトリガーしません。しかし、ヘッダーの先頭のコードをローカルにファイルにコピーすると、突然動作します。 – WelshJohn

+0

あなたのファイルは含まれていません。以下の答えを見てください。恐らくそれが起こることを保証するために 'require'を使う必要があります。 – jszobody

答えて

0

を試してみてくださいrequire_once('../php/header.php');これが含まれるまで、コードは実行されません。また、include_onceが実行後にfalseを返す場合、インクルードされていないことを意味し、インクルードスクリプトに問題がある可能性があります。

関連する問題