使用PHP的Guzzle HTTP库代替AWS S3 API lite实现对S3的访问。
composer require guzzlehttp/guzzle
use GuzzleHttp\Client;
use GuzzleHttp\Exception\RequestException;
class S3Client
{
private $client;
public function __construct($base_uri, $access_key, $secret_key)
{
$this->client = new Client([
'base_uri' => $base_uri,
'auth' => [$access_key, $secret_key],
]);
}
public function getObject($bucket, $key)
{
try {
$response = $this->client->get($bucket . '/' . $key);
return $response->getBody();
} catch (RequestException $e) {
return null;
}
}
public function putObject($bucket, $key, $body)
{
try {
$this->client->put($bucket . '/' . $key, ['body' => $body]);
return true;
} catch (RequestException $e) {
return false;
}
}
public function deleteObject($bucket, $key)
{
try {
$this->client->delete($bucket . '/' . $key);
return true;
} catch (RequestException $e) {
return false;
}
}
}
$s3Client = new S3Client('https://s3.amazonaws.com', 'ACCESS_KEY', 'SECRET_KEY');
// 上传对象
$s3Client->putObject('BUCKET_NAME', 'OBJECT_KEY', 'OBJECT_CONTENTS');
// 获取对象内容
$contents = $s3Client->getObject('BUCKET_NAME', 'OBJECT_KEY');
// 删除对象
$s3Client->deleteObject('BUCKET_NAME', 'OBJECT_KEY');