Hướng dẫn sử dụng PHP thao tác với S3 Nhân Hòa
Mở đầu
Hiện nay Nhân Hòa đã cho ra mắt sản phẩm mới với tên gọi S3 Storage. Sản phẩm phục vụ chính cho việc lưu trữ Object. Có rất nhiều cách để thao tác được với S3 của Nhân Hòa tuy nhiên trong phạm vi bài viết này, mình sẽ hướng dẫn các bạn thao tác với S3 của Nhân Hòa bằng PHP sử dụng thư viện AWS SDK.
Requirement
- PHP 7.1
- Composer
- AWS SDK for PHP – Version 3
Tạo một project thao tác với S3 và cài đặt
mkdir NhanhoaS3
cd NhanhoaS3
Cài đặt các gói cần thiết
Ở đây mình 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 của mình trong bài viết.
touch index.php
Lấy key xác thực
Bước 1: Đăng nhập vào trang quản trị dịch vụ S3 của Nhân Hòa tại địa chỉ: https://portal-s3.cloudsolutions.vn
Bước 2: Chọn đến đường dẫn Quản lý key
Bước 3: Mặc định secrect key sẽ không hiển thị, trong trường hợp bạn không lấy được secrect key hoặc quên, hãy click vào nút Re-generate Secret Key
Ở đây bạn lưu ý 3 thành phần:
- Access key
- Secrect key
- Endpoint
Hãy lưu lại 3 thành phần này vì mình sẽ sử dụng chúng trong các đoạn code PHP sau này
Các thao tác với S3 Nhân Hòa bằng PHP
List Bucket
<?php
require 'vendor/autoload.php';
define('S3_NHANHOA_KEY', 'ACCESS_KEY');
define('S3_NHANHOA_SECRET_KEY', 'SECRECT_KEY');
define('S3_NHANHOA_ENDPOINT', 'END_POINT');
$s3Nhanhoa = new Aws\S3\S3Client([
'region' => '',
'version' => '2006-03-01',
'endpoint' => S3_NHANHOA_ENDPOINT,
'credentials' => [
'key' => S3_NHANHOA_KEY,
'secret' => S3_NHANHOA_SECRET_KEY,
]
]);
$listBucket = $s3Nhanhoa->listBuckets();
foreach ($listBucket['Buckets'] as $bucket) {
echo $bucket['Name'] . "\t" . $bucket['CreationDate'] . "\n";
}
?>
Tạo Bucket
<?php
require 'vendor/autoload.php';
define('S3_NHANHOA_KEY', 'ACCESS_KEY');
define('S3_NHANHOA_SECRET_KEY', 'SECRECT_KEY');
define('S3_NHANHOA_ENDPOINT', 'END_POINT');
$s3Nhanhoa = new Aws\S3\S3Client([
'region' => '',
'version' => '2006-03-01',
'endpoint' => S3_NHANHOA_ENDPOINT,
'credentials' => [
'key' => S3_NHANHOA_KEY,
'secret' => S3_NHANHOA_SECRET_KEY,
]
]);
$s3Nhanhoa->createBucket(['Bucket' => 'my-new-bucket']);
?>
Xóa Bucket
Lưu ý, Bucket phải trống mới có thể xóa
<?php
require 'vendor/autoload.php';
define('S3_NHANHOA_KEY', 'ACCESS_KEY');
define('S3_NHANHOA_SECRET_KEY', 'SECRECT_KEY');
define('S3_NHANHOA_ENDPOINT', 'END_POINT');
$s3Nhanhoa = new Aws\S3\S3Client([
'region' => '',
'version' => '2006-03-01',
'endpoint' => S3_NHANHOA_ENDPOINT,
'credentials' => [
'key' => S3_NHANHOA_KEY,
'secret' => S3_NHANHOA_SECRET_KEY,
]
]);
$s3Nhanhoa->deleteBucket(['Bucket' => 'my-bucket']);
?>
Tạo Object (Upfile)
<?php
require 'vendor/autoload.php';
define('S3_NHANHOA_KEY', 'ACCESS_KEY');
define('S3_NHANHOA_SECRET_KEY', 'SECRECT_KEY');
define('S3_NHANHOA_ENDPOINT', 'END_POINT');
$s3Nhanhoa = new Aws\S3\S3Client([
'region' => '',
'version' => '2006-03-01',
'endpoint' => S3_NHANHOA_ENDPOINT,
'credentials' => [
'key' => S3_NHANHOA_KEY,
'secret' => S3_NHANHOA_SECRET_KEY,
]
]);
$s3Nhanhoa->putObject([
'Bucket' => 'my-bucket',
'Key' => 'name-object.txt',
'SourceFile' => '/path/to/local/file'
]);
?>
Download Object
<?php
require 'vendor/autoload.php';
define('S3_NHANHOA_KEY', 'ACCESS_KEY');
define('S3_NHANHOA_SECRET_KEY', 'SECRECT_KEY');
define('S3_NHANHOA_ENDPOINT', 'END_POINT');
$s3Nhanhoa = new Aws\S3\S3Client([
'region' => '',
'version' => '2006-03-01',
'endpoint' => S3_NHANHOA_ENDPOINT,
'credentials' => [
'key' => S3_NHANHOA_KEY,
'secret' => S3_NHANHOA_SECRET_KEY,
]
]);
$object = $s3Nhanhoa->getObject(
[
'Bucket' => 'my-bucket',
'Key' => 'remote-object.txt'
]
);
file_put_contents('./my-download-object.txt', $object['Body']->getContents());
?>
Xóa Object
<?php
require 'vendor/autoload.php';
define('S3_NHANHOA_KEY', 'ACCESS_KEY');
define('S3_NHANHOA_SECRET_KEY', 'SECRECT_KEY');
define('S3_NHANHOA_ENDPOINT', 'END_POINT');
$s3Nhanhoa = new Aws\S3\S3Client([
'region' => '',
'version' => '2006-03-01',
'endpoint' => S3_NHANHOA_ENDPOINT,
'credentials' => [
'key' => S3_NHANHOA_KEY,
'secret' => S3_NHANHOA_SECRET_KEY,
]
]);
$s3Nhanhoa->deleteObject(
[
'Bucket' => 'huytm',
'Key' => 'ts.txt'
]
);
?>
Tổng kết
Như vậy trong bài viết này mình đã hướng dẫn các bạn cách sử dụng PHP để thao tác cơ bản với S3 Nhân Hòa. Trong các bài viết tới mình sẽ thực hiện với các ngôn ngữ lập trình khác.
Cảm ơn các bạn đã theo dõi, chúc các bạn thực hiện thành công !
Leave a Reply