【发布时间】:2017-08-11 16:24:43
【问题描述】:
我正在尝试在 AWSS3 中上传错误文件,但它显示错误,例如“您尝试访问的存储桶必须使用指定的端点进行寻址。请将所有未来请求发送到此端点:”test9011960909.s3.amazonaws.com “。”
我还指定了 'region' => 'us-east-1' 但仍然出现同样的错误。
当我指定时它正在工作
'Bucket' => $this->bucket,
但我想在主存储桶的子文件夹中上传文件
'Bucket' => $this->bucket . "/" . $PrefixFolderPath,
我已经申请了来自AWS S3: The bucket you are attempting to access must be addressed using the specified endpoint的批准答案
但仍然遇到同样的错误,我正在使用 php
代码:
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";
}
}
}
【问题讨论】:
-
我已经申请了批准的答案,但仍然收到同样的错误,这就是为什么发布这个问题,我正在使用 php。
-
鉴于这是 AWS 对此错误的唯一解释:docs.aws.amazon.com/redshift/latest/dg/… 并且这是我自己(和其他大多数人)唯一一次看到它,我想不出其他原因。如果您认为您从正确的区域访问,请检查您的 AWS 控制台并向 AWS 提出票证。
-
转到控制台并再次检查您的存储桶的区域。
-
登录正确