[S3 Sandclock] Hướng dẫn sử dụng PHP thao tác với S3 Sandclock

30/12/2020
Chưa phân loại

Hướng dẫn sử dụng PHP thao tác với S3 Sandclock

Mở đầu

Hiện nay Sandclock đã 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 Sandclock 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 Sandclock 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 Sandclock 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 Sandclock 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 AwsS3S3Client([ 		'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 AwsS3S3Client([ 		'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 AwsS3S3Client([ 		'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 AwsS3S3Client([ 		'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 AwsS3S3Client([ 		'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 AwsS3S3Client([ 		'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 Sandclock. 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 !

Tài liệu tham khảo

Sandclock IDC thành lập vào năm 2012, là công ty chuyên nghiệp tại Việt Nam trong lĩnh vực cung cấp dịch vụ Hosting, VPS, máy chủ vật lý, dịch vụ Firewall Anti DDoS, SSL… Với 10 năm xây dựng và phát triển, ứng dụng nhiều công nghệ hiện đại, Sandclock IDC đã giúp hàng ngàn khách hàng tin tưởng lựa chọn, mang lại sự ổn định tuyệt đối cho website của khách hàng để thúc đẩy việc kinh doanh đạt được hiệu quả và thành công.
Bài viết liên quan

Read filename without extension in Bash

Linux users need to work with files regularly for many purposes. Sometimes the users need to read the basename of the file...
29/12/2020

What is DNS and how does it work

This tutorial aims to explain, in the simplest way, what DNS (the Domain Name System) is and how it works. This article...
29/12/2020

[CEPH] [LAB] [Phần2] Hướng dẫn sử dụng block storage của CEPH

Block stoarge sẽ dùng như thế nào nhỉ? Trong phần 1, Sandclock đã hướng dẫn bạn triển khai cluser...
30/12/2020
Bài Viết

Bài Viết Mới Cập Nhật

Hướng dẫn chuyển đổi windows server windows evaluation to standard và active windows server 2008 + 2012 + 2016 + 2019
26/10/2021

How to Update Ubuntu Linux
24/10/2021

Squid Proxy Manager cài đặt và quản lý Proxy Squid tự động trên ubuntu
20/10/2021

Hướng dẫn cài đặt Apache CloudStack 4.15.2.0
19/10/2021

Hướng dẫn ký file PDF bằng chữ ký số (chữ ký điện tử) và sửa lỗi mới nhất 2021 foxit reader
19/10/2021