尝试将文件上载到S3桶中,我使用以下代码设置了SDK:
<?php
use Aws\S3\S3Client;
use Aws\Exception\AwsException;
try {
require 'vendor/autoload.php';
$s3 = new Aws\S3\S3Client([
'region' => 'us-east-1',
'version' => 'latest',
'credentials' => [
'key' => "KEY",
'secret' => "SECRET",
]
]);
$result = $s3->putObject([
'Bucket' => 'bucketname',
'Key' => 'test.txt',
'SourceFile' => 'test.txt'
]);
var_dump($result);
} catch (\Throwable $th) {
echo $th;
}
错误日志
AWS HTTP error: Client error: `PUT https://bucketname.s3.amazonaws.com/test.txt` resulted in a `404 Not Found` response: NoSuchBucketThe specified bucket does not exist
可能的错误:
URL应该是基于:文档的这个表单
https://s3.Region.amazonaws.com/bucket-name/key name
发布于 2021-01-29 11:53:06
我认为问题在于S3 Client
本身。下面是文档PutObject.php中的示例
use Aws\S3\S3Client;
use Aws\Exception\AwsException;
....
try {
//Create a S3Client
$s3Client = new S3Client([
'profile' => 'default',
'region' => 'us-west-2',
'version' => '2006-03-01'
]);
$result = $s3Client->putObject([
'Bucket' => $bucket,
'Key' => $key,
'SourceFile' => $file_Path,
]);
} catch (S3Exception $e) {
echo $e->getMessage() . "\n";
}
https://stackoverflow.com/questions/65952234
复制相似问题