0

次のコードUploading an Image using AWS SDK for PHP 2を試してみると、米国のデフォルト リージョン (us-east-1) で動作しますが、シンガポール リージョンで別のバケットを作成すると (コードに ap-souteast-2 を入れます) ) エラーを返します:

アクセスしようとしているバケットは、指定されたエンドポイントを使用してアドレス指定する必要があります。今後のすべてのリクエストをこのエンドポイント「mytestbucket.local.s3-ap-southeast-1.amazonaws.com」に送信してください。

この問題を解決するには?

これが私のコードです

$awsConfig = array(
                'key' => $this->container->getParameter('aws_key'),
                'secret' => $this->container->getParameter('aws_secret_key'),
                'region' => $this->container->getParameter('s3_region'),
            );
            $s3 = S3Client::factory($awsConfig);
            $bucketLists = array();
            try {
                $bucketname   = $this->container->getParameter('aws_bucket_name');
                $bucketFolder = $this->container->getParameter('upload_folder');
                $filename     = $user->getProfilePic();
                $fullfilename = $user->getAbsolutePath();

                $s3->putObject(array(
                    'Bucket' => $bucketname,
                    'Key'    => $bucketFolder.'/'.$filename, 
                    'Body'   => EntityBody::factory(fopen($fullfilename, 'r')),
                    'ACL'    => CannedAcl::PUBLIC_READ,
                    'ContentType' => mime_content_type($fullfilename)
                ));
                if (file_exists($fullfilename)) {
                    unlink($fullfilename);
                }
            } catch (S3Exception $e) {
                return $this->handleView( $this->view(array(
                'StatusCode' => 400, 
                'ErrorDesc' => $e->getMessage()), 400));
            }
4

1 に答える 1

0

設定ではなく、ap-southeast-1地域を使用する必要があります。ap-souteast-2$awsConfig

于 2013-09-12T11:42:32.583 に答える