1. Giới thiệu
P.A Việt Nam đã cho ra mắt sản phẩm mới với tên gọi Object Storage. Sản phẩm phục vụ chính cho việc lưu trữ Object. Có nhiều cách để thao tác được với Object Storage của P.A Việt Nam (tương thích với S3 protocol) tuy nhiên trong phạm vi bài viết này, chúng tôi sẽ hướng dẫn các bạn thao tác với Object Storage của P.A Việt Nam bằng PHP sử dụng thư viện AWS SDK.
2. Requirement
- PHP 7.1
- Composer
- AWS SDK for PHP – Version 3 https://github.com/aws/aws-sdk-php
3. Tạo một project thao tác với Object Storage và cài đặt
mkdir ObjPA
cd ObjPA
3.1 Cài đặt các gói cần thiết
Ở đây chúng tôi sử dụng bộ thư viện mở AWS SDK for PHP của Amazon mình sẽ cài đặt bằng câu lệnh sau:
composer require aws/aws-sdk-php
Tạo một file index.php. Chú ý rằng file này sẽ thực hiện với nhiều mục đích khác nhau, nội dung file sẽ thay đổi theo tùy theo hành động trong bài viết.
touch index.php
3.2 Lấy key xác thực
Bước 1: Đăng nhập vào trang quản trị dịch vụ Object Storage của P.A Việt Nam tại địa chỉ: https://objstoreXXX.superdata.vn/
Với Link https://objstoreXXX.superdata.vn/ sẽ được chúng tôi cung cấp khi bạn đăng ký dịch vụ
Bước 2: Chọn đến mục Access Key
Bước 3: Tạo một Access Key bằng cách click vào Create Access Key > Create
Ở đây bạn lưu ý 3 thành phần:
- Access key
- Secret key
- Endpoint: https://objstoreXXXapi.superdata.vn/
Với https://objstoreXXXapi.superdata.vn/ sẽ được chúng tôi cung cấp khi bạn đăng ký dịch vụ này
Hãy lưu lại 3 thành phần này vì sẽ sử dụng chúng trong các đoạn code PHP sau này
4. Các thao tác với Object Storage của P.A Việt Nam bằng PHP
4.1 List Bucket
<?php
require 'vendor/autoload.php';
define('ObjSto_PA_KEY', 'ACCESS_KEY');
define('ObjSto_PA_SECRET_KEY', 'SECRECT_KEY');
define('ObjSto_PA_ENDPOINT', 'END_POINT');
$ObjStoPA = new Aws\S3\S3Client([
'region' => 'ap-southeast-1',
'version' => '2006-03-01',
'endpoint' => ObjSto_PA_ENDPOINT,
'credentials' => [
'key' => ObjSto_PA_KEY,
'secret' => ObjSto_PA_SECRET_KEY,
]
]);
$listBucket = $ObjStoPA->listBuckets();
foreach ($listBucket['Buckets'] as $bucket) {
echo $bucket['Name'] . "\t" . $bucket['CreationDate'] . "\n";
}
?>
4.2 Tạo Bucket
<?php
require 'vendor/autoload.php';
define('ObjSto_PA_KEY', 'ACCESS_KEY');
define('ObjSto_PA_SECRET_KEY', 'SECRECT_KEY');
define('ObjSto_PA_ENDPOINT', 'END_POINT');
$ObjStoPA = new Aws\S3\S3Client([
'region' => 'ap-southeast-1',
'version' => '2006-03-01',
'use_path_style_endpoint' => true,
'endpoint' => ObjSto_PA_ENDPOINT,
'credentials' => [
'key' => ObjSto_PA_KEY,
'secret' => ObjSto_PA_SECRET_KEY,
]
]);
$ObjStoPA->createBucket(['Bucket' => 'pa-new-bucket']);
?>
4.3 Xóa Bucket
Lưu ý, Bucket phải trống mới có thể xóa
<?php
require 'vendor/autoload.php';
define('ObjSto_PA_KEY', 'ACCESS_KEY');
define('ObjSto_PA_SECRET_KEY', 'SECRECT_KEY');
define('ObjSto_PA_ENDPOINT', 'END_POINT');
$ObjStoPA = new Aws\S3\S3Client([
'region' => 'ap-southeast-1',
'version' => '2006-03-01',
'use_path_style_endpoint' => true,
'endpoint' => ObjSto_PA_ENDPOINT,
'credentials' => [
'key' => ObjSto_PA_KEY,
'secret' => ObjSto_PA_SECRET_KEY,
]
]);
$ObjStoPA->deleteBucket(['Bucket' => 'pa-bucket']);
?>
4.4 Tạo Object (Upfile)
<?php
require 'vendor/autoload.php';
define('ObjSto_PA_KEY', 'ACCESS_KEY');
define('ObjSto_PA_SECRET_KEY', 'SECRECT_KEY');
define('ObjSto_PA_ENDPOINT', 'END_POINT');
$ObjStoPA = new Aws\S3\S3Client([
'region' => 'ap-southeast-1',
'version' => '2006-03-01',
'use_path_style_endpoint' => true,
'endpoint' => ObjSto_PA_ENDPOINT,
'credentials' => [
'key' => ObjSto_PA_KEY,
'secret' => ObjSto_PA_SECRET_KEY,
]
]);
$ObjStoPA->putObject([
'Bucket' => 'pa-bucket',
'Key' => 'name-object.txt',
'SourceFile' => '/path/to/local/file'
]);
?>
4.5 Download Object
<?php
require 'vendor/autoload.php';
define('ObjSto_PA_KEY', 'ACCESS_KEY');
define('ObjSto_PA_SECRET_KEY', 'SECRECT_KEY');
define('ObjSto_PA_ENDPOINT', 'END_POINT');
$ObjStoPA = new Aws\S3\S3Client([
'region' => 'ap-southeast-1',
'version' => '2006-03-01',
'use_path_style_endpoint' => true,
'endpoint' => ObjSto_PA_ENDPOINT,
'credentials' => [
'key' => ObjSto_PA_KEY,
'secret' => ObjSto_PA_SECRET_KEY,
]
]);
$object = $ObjStoPA->getObject(
[
'Bucket' => 'pa-bucket',
'Key' => 'remote-obj.txt'
]
);
file_put_contents('./padownload-obj.txt', $object['Body']->getContents());
?>
4.6 Xóa Object
<?php
require 'vendor/autoload.php';
define('ObjSto_PA_KEY', 'ACCESS_KEY');
define('ObjSto_PA_SECRET_KEY', 'SECRECT_KEY');
define('ObjSto_PA_ENDPOINT', 'END_POINT');
$ObjStoPA = new Aws\S3\S3Client([
'region' => 'ap-southeast-1',
'version' => '2006-03-01',
'use_path_style_endpoint' => true,
'endpoint' => ObjSto_PA_ENDPOINT,
'credentials' => [
'key' => ObjSto_PA_KEY,
'secret' => ObjSto_PA_SECRET_KEY,
]
]);
$ObjStoPA->deleteObject(
[
'Bucket' => 'ktpa',
'Key' => 'test.txt'
]
);
?>
5. Tổng kết
Qua bài viết này chúng tôi đã hướng dẫn các bạn cách sử dụng PHP để thao tác cơ bản với Object Storage của P.A Việt Nam.
Cảm ơn các bạn đã theo dõi, chúc các bạn thực hiện thành công !
Bạn có thể tham khảo thêm các hướng dẫn khác về dịch vụ Object Storage của chúng tôi tại đây.