2016-04-29 15 views
0

AmazonのS3サービスにアップロードするためのアップロードフォームの基本的なPHP実装をセットアップするためにしばらく試してきましたが、何もできません。基本AWS S3 PHP設定

ドキュメントを読むと、その例はすべて異なって見えます。 資格情報を提供してファイルをアップロードする正しい方法は何ですか?彼らのgithubのレポで

、それは言う: http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-s3.htmlオン

// Require the Composer autoloader. 
require 'vendor/autoload.php'; 

use Aws\S3\S3Client; 

// Instantiate an Amazon S3 client. 
$s3 = new S3Client([ 
    'version' => 'latest', 
    'region' => 'us-west-2' 
]); 

try { 
    $s3->putObject([ 
     'Bucket' => 'my-bucket', 
     'Key' => 'my-object', 
     'Body' => fopen('/path/to/file', 'r'), 
     'ACL' => 'public-read', 
    ]); 
} catch (Aws\Exception\S3Exception $e) { 
    echo "There was an error uploading the file.\n"; 
} 

は、彼らは言う:

use Aws\S3\S3Client; 

$client = S3Client::factory(array(
    'profile' => '<profile in your aws credentials file>' 
)); 

// Upload an object by streaming the contents of a file 
// $pathToFile should be absolute path to a file on disk 
$result = $client->putObject(array(
    'Bucket'  => $bucket, 
    'Key'  => 'data_from_file.txt', 
    'SourceFile' => $pathToFile, 
    'Metadata' => array(
     'Foo' => 'abc', 
     'Baz' => '123' 
    ) 
)); 

// We can poll the object until it is accessible 
$client->waitUntil('ObjectExists', array(
    'Bucket' => $this->bucket, 
    'Key' => 'data_from_file.txt' 
)); 

は最近、これを実行することができました誰もがここでセットアップにいくつかの光を当てることができますか?

+0

を使用して作業なってしまったあなたは、任意の電子を得ています不具合? –

+0

私はいつもこのガイドを使いました。 http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-s3.htmlまた、cURL拡張機能がインストールされていることを確認してください。 – Vector

答えて

1

あなたはこの文であるためにリンクしたドキュメントからのキー:あなたは、前述の例のようなあなたの資格プロファイルを提供することができます は(鍵と秘密を経由して)直接アクセスキーを指定するか、または

あなたは あなたがAWS アイデンティティおよびアクセス管理(IAM)EC2インスタンスので

あなたはEC2インスタンスからこれを実行している場合、あなたは簡単なオミット一切の言及のための役割を使用している場合、いずれかの資格情報を省略することを選択できます資格情報インスタンスに関連付けられたロールからアクセス許可を取得する必要があります。その後

あなたがAWSで実行していない場合は、コードを実行しているユーザーのための〜/ .aws /設定を作成する必要があり、かつ

[profile profile_name] 
aws_access_key_id = key 
aws_secret_access_key = secret 
region = us-east-1 

ようになりますプロファイルを作成し、あなたは思いますちょうど行います

$client = S3Client::factory(array(
    'profile' => 'profile_name' 
)); 
0

私はそれだけで埋め込ま資格情報

<?php 

date_default_timezone_set("America/Denver"); 

require "./aws/aws-autoloader.php"; 

use Aws\S3\S3Client; 

$s3Client = S3Client::factory(array(
    'credentials' => array(
     'key' => 'key', 
     'secret' => 'secret', 
    ), 
    "region" => "us-east-1", 
    "version" => "latest" 
)); 

?> 
関連する問題