Contents
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.
<?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.