object-storage

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

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

objstore-access-key

Bước 3: Tạo một Access Key bằng cách click vào Create Access Key > Create

obj-store-cre-acc

Ở đâ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.