Estoy tratando de cargar un archivo de error en AWSS3, pero muestra un error como "El depósito al que intenta acceder debe abordarse mediante el punto final especificado. Envíe todas las solicitudes futuras a este punto final: "test9011960909.s3.amazonaws.com"."
También especifiqué 'región' => 'us-east-1' pero aún ocurre el mismo error.
está funcionando cuando especifico
'Bucket' => $this->bucket,pero quería cargar el archivo en la subcarpeta del cubo principal
'Bucket' => $this->bucket . "/" . $PrefixFolderPath,Ya apliqué la respuesta aprobada de AWS S3: el depósito al que intenta acceder debe abordarse mediante el punto final especificado
pero sigo recibiendo el mismo error, estoy usando php
Código:
use Aws\S3\S3Client; use Aws\S3\Exception\S3Exception; class AWSS3Factory { private $bucket; private $keyname; public function __construct() { $this->bucket = AWSS3_BucketName; $this->keyname = AWSS3_AccessKey; // Instantiate the client. } public function UploadFile($FullFilePath,$PrefixFolderPath="") { try { $s3 = S3Client::factory(array( 'credentials' => array( 'key' => MYKEY, 'secret' => MYSECKEY, 'region' => 'eu-west-1', ) )); // Upload data. $result = $s3->putObject(array( 'Bucket' => $this->bucket . "/" . $PrefixFolderPath, 'Key' => $this->keyname, 'SourceFile' => $FullFilePath, 'StorageClass' => 'REDUCED_REDUNDANCY' )); return true; // Print the URL to the object. //echo $result['ObjectURL'] . "\n"; } catch (S3Exception $e) { echo $e->getMessage() . "\n"; } } }Debe agregar $PrefixFolderPath no a 'Bucket' sino a 'Key' :
$result = $s3->putObject(array( 'Bucket' => $this->bucket, 'Key' => $PrefixFolderPath . "/" . $this->keyname, 'SourceFile' => $FullFilePath, 'StorageClass' => 'REDUCED_REDUNDANCY' ));Debe crear la instancia s3 de otra manera, así:
$s3 = S3Client::factory([ 'region' => '', 'credentials' => ['key' => '***', 'secret' => '***'], 'version' => 'latest', ]);