Hướng dẫn cấu hình kết nối Object Storage với AWS SDK (PHP)

Giới thiệu

Bài viết này sẽ hướng dẫn cách cấu hình kết nối Object Storage với AWS SDK (PHP) tại 123HOST.

Hướng dẫn cách cấu hình kết nối Object Storage với AWS SDK (PHP)

Sử dụng AWS SDK PHP

Trong hướng dẫn này sử dụng thư viện aws-sdk-php phiên bản 3 và PHP phiên bản 8.1. Chúng ta sẽ sử dụng thông tin Access Key ID và Secret Key ID tại mục Security Credentials

Trong phần S3 ACCESS CREDENTIALS chúng ta sẽ lấy các giá trị cần thiết.

Để kết nối sử dụng đoạn code như ví dụ sau:

<?php
require 'vendor/autoload.php';
$bucket_name = "<bucket-name>"; // Ví dụ: $bucket_name = "123hosttech";
$access_key_id = "<access-key-id>";
$access_key_secret = "<secret-key-id>";
$credentials = new Aws\Credentials\Credentials($access_key_id, $access_key_secret);
$options = [
'region' => 'auto',
'endpoint' => "https://s3-hcm-r1.s3cloud.vn",
'version' => 'latest',
'credentials' => $credentials
];
$s3_client = new Aws\S3\S3Client($options);
$contents = $s3_client->listObjectsV2([
'Bucket' => $bucket_name
]);
var_dump($contents['Contents']);
?>
Thực hiện thay đổi các thông tin cần thiết bao gồm bucket_name ,access_key_id , access_key_secret kết quả thực thi như sau:
php s3.php
array(3) {
[0]=>
array(5) {
["Key"]=>
string(11) "123host.png"
["LastModified"]=>
object(Aws\Api\DateTimeResult)#539 (3) {
["date"]=>
string(26) "2024-04-09 01:48:16.841000"
["timezone_type"]=>
int(2)
["timezone"]=>
string(1) "Z"
}
["ETag"]=>
string(34) ""9428653629e0df1d86da7f855ec81d1c""
["Size"]=>
string(5) "36765"
["StorageClass"]=>
string(8) "STANDARD"
}
[1]=>
array(5) {
["Key"]=>
string(8) "404.html"
["LastModified"]=>
object(Aws\Api\DateTimeResult)#541 (3) {
["date"]=>
string(26) "2024-04-08 17:13:46.766000"
["timezone_type"]=>
int(2)
["timezone"]=>
string(1) "Z"
}
["ETag"]=>
string(34) ""bc446a05395bdf405565ed447f3f521e""
["Size"]=>
string(3) "647"
["StorageClass"]=>
string(8) "STANDARD"
}
[2]=>
array(5) {
["Key"]=>
string(10) "index.html"
["LastModified"]=>
object(Aws\Api\DateTimeResult)#542 (3) {
["date"]=>
string(26) "2024-04-08 17:13:47.733000"
["timezone_type"]=>
int(2)
["timezone"]=>
string(1) "Z"
}
["ETag"]=>
string(34) ""9dcbdeac035d89bd802cfe5cec65dabd""
["Size"]=>
string(3) "530"
["StorageClass"]=>
string(8) "STANDARD"
}
}

Upload File

Sử dụng code sau để tiến hành upload file:

<?php
require 'vendor/autoload.php';
$bucket_name = "<bucket-name>"; // Ví dụ: $bucket_name = "123hosttech";
$access_key_id = "<access-key-id>";
$access_key_secret = "<secret-key-id>";
$filename = "<file-name-trên-S3>";
$pathToFile = "<vị-trí-file-cần-upload-ở-local>";
$credentials = new Aws\Credentials\Credentials($access_key_id, $access_key_secret);
$options = [
'region' => 'auto',
'endpoint' => "https://s3-hcm-r1.s3cloud.vn",
'version' => 'latest',
'credentials' => $credentials
];
$s3_client = new Aws\S3\S3Client($options);
$contents = $s3_client->putObject(array(
'Bucket' => $bucket_name,
'Key' => $filename,
'SourceFile' => $pathToFile,
));
var_dump($contents['ObjectURL']);
Thực hiện thay đổi các thông tin cần thiết bao gồm bucket_name ,access_key_id , access_key_secret, filename , pathToFile kết quả thực thi như sau:
Kiểm tra trên S3 chúng ta ghi nhận file đã được upload:

Download File

Chúng ta có thể sử dụng đoạn code sau để thực hiện download file:

<?php
require 'vendor/autoload.php';
$bucket_name = "<bucket-name>";
$access_key_id = "<access-key-id>";
$access_key_secret = "<secret-key-id>";
$filename = "<file-name-trên-S3>";
$pathToFile = "<vị-trí-file-cần-download-ở-local>";
$credentials = new Aws\Credentials\Credentials($access_key_id, $access_key_secret);
$options = [
'region' => 'auto',
'endpoint' => "https://s3-hcm-r1.s3cloud.vn",
'version' => 'latest',
'credentials' => $credentials
];
$s3_client = new Aws\S3\S3Client($options);
$contents = $s3_client->getObject(array(
'Bucket' => $bucket_name,
'Key' => $filename,
'SaveAs' => $pathToFile,
));
system("ls ".$pathToFile);
Thực hiện thay đổi các thông tin cần thiết bao gồm bucket_name ,access_key_id , access_key_secret, filename , pathToFile kết quả thực thi như sau:
Qua hướng dẫn này chúng ta đã tìm hiểu về kết nối Object Storage với AWS SDK (PHP), chúc quý khách thao tác thành công.

Rate This Article