1

s3 の PHP SDK を使用してファイルをアップロードしようとしています。ファイルを既存のバケットにアップロードすると、エラーがポップアップ表示されます。

<?php
error_reporting(-1);
// Set plain text headers
header("Content-type: text/plain; charset=utf-8");
// Include the SDK
require_once '../sdk.class.php';

// %** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * * %*/ // ファイルを S3 にアップロード

// Instantiate the AmazonS3 class
$s3 = new AmazonS3();
$s3->path_style = true;

$bucket = 'photossss1.abc.com';

$name = "picture.jpg" ;
$response = $s3->create_object($bucket, 'picture2.jpg', array(
    'fileUpload' => 'picture.jpg'
));

if($response->isOk()){
    echo " Done" ;
} else {
    //var_dump($response);
    echo "error: create_object error.";
}

上記のコードのエラーは何ですか..?

デバッグ: print_r($response->body); =>

CFSimpleXML Object
(
    [Code] => PermanentRedirect
    [Message] => The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.
    [RequestId] => DACD5C54BC4BD82
    [Bucket] => photossss1.abc.com
    [HostId] => QUBlZEZKh0Ujzk6UyGG7LjC0vMCWDlOPszTZru/+OpWidBH84VXor1 
    [Endpoint] => photossss1.abc.com.s3.amazonaws.com
)
4

3 に答える 3

5

クラスの初期化後にリージョンを設定する必要があります

// Initialize the class
$s3 = new AmazonS3();
$s3->set_region( AmazonS3::REGION_EU_W1 );
...

SDKドキュメントの関連ページ

于 2013-02-05T17:21:10.020 に答える
0

services/s3.class.php; この部品を交換してください:

const REGION_US_E1 = 's3.amazonaws.com';

に:

const REGION_US_E1 = 's3-eu-west-1.amazonaws.com';
于 2012-11-14T12:50:31.597 に答える
0

結果は次のとおりです。

<?php
print_r($response->body);

これにより、S3 から適切なエラー メッセージが表示されます。

于 2012-10-05T05:53:17.010 に答える