การตั้งค่าและใช้งานบริการเก็บวัตถุ MinIO บน ServBay
MinIO คือซอฟต์แวร์สำหรับ object storage แบบโอเพนซอร์สที่มีประสิทธิภาพสูง รองรับการทำงานร่วมกับ Amazon S3 API อย่างเต็มรูปแบบ เหมาะสำหรับการจำลองบริการ cloud storage ในสภาพแวดล้อมการพัฒนาในเครื่อง ใช้เก็บและบริหารข้อมูลประเภท unstructured เช่น รูปภาพ วิดีโอ ไฟล์ log ข้อมูลสำรอง หรือ container image ด้วย ServBay คุณจะติดตั้งและจัดการ MinIO บน macOS ได้อย่างง่ายดาย
ภาพรวม
ServBay มีอินเทอร์เฟซติดตั้งและตั้งค่า MinIO แบบ One-click พร้อม UI กราฟิก ช่วยลดความยุ่งยากในการจำลอง object storage ที่รองรับ S3 บนเครื่องของคุณ นักพัฒนาสามารถเปิดใช้งานบริการจัดเก็บวัตถุอันครบถ้วนนี้ได้โดยไม่ต้องพึ่งพาคำสั่ง CLI ที่ซับซ้อน ใช้ได้ทั้งสำหรับการสร้างแอปพลิเคชันหรือทดสอบต่างๆ
ที่สำคัญ ServBay จะตั้งค่าคอนโซลเว็บที่ปลอดภัยและเข้าถึงง่ายให้กับ MinIO ของคุณโดยอัตโนมัติ ผ่านโดเมน https://minio.servbay.host/
ข้อกำหนดเบื้องต้น
- macOS ของคุณได้ติดตั้งและทำงานกับ ServBay เรียบร้อยแล้ว
- มีพื้นฐานเรื่อง object storage (bucket, object) พอสมควร
ขั้นตอนการทำงาน
1. ติดตั้งแพ็กเกจ MinIO
เริ่มต้นด้วยการติดตั้ง MinIO บน ServBay:
- เปิดแอปพลิเคชัน ServBay
- ที่แถบนำทางด้านซ้าย คลิกที่ แพ็กเกจ (Packages)
- หา
object storage
-MinIO
ในรายการแพ็กเกจ - คลิกปุ่มติดตั้งทางขวาของ
MinIO
จากนั้นรอจนติดตั้งเสร็จสมบูรณ์ - คลิกปุ่มเปิดใช้งานเพื่อเริ่มบริการ
MinIO
2. กำหนดค่า MinIO
หลังติดตั้งเสร็จ ต้องกำหนดค่าพื้นฐานให้ MinIO:
ที่แถบนำทางด้านซ้ายของ ServBay คลิก Object Storage
เลือก MinIO จากเมนู dropdown เพื่อเข้าสู่หน้ากำหนดค่า
คุณจะพบข้อมูลค่าต่าง ๆ ต่อไปนี้ สามารถปรับได้ตามต้องการหรือปล่อยไว้เป็นค่าเริ่มต้น:
- Bind IP (ผูก IP): IP ที่ MinIO ฟังรอการเชื่อมต่อ ค่าเริ่มต้น
127.0.0.1
หมายถึงอนุญาตเฉพาะเครื่อง local เท่านั้น ปลอดภัยและแนะนำที่สุดในสภาพแวดล้อม dev - API Port (พอร์ต API): พอร์ตสำหรับเชื่อมต่อ S3 API แอปพลิเคชันของคุณจะใช้พอร์ตนี้สื่อสารกับ MinIO ค่าเริ่มต้น
9000
- Root user (ผู้ใช้ root): ชื่อผู้ดูแลระบบของ MinIO ค่าเริ่มต้นคือ
minio
- Root password (รหัสผ่าน root): รหัสผ่านสำหรับผู้ดูแลระบบ แนะนำอย่างยิ่ง ให้ตั้งรหัสผ่านที่รัดกุมและไม่ซ้ำกับที่อื่น เก็บรักษาไว้ให้ดี เพราะจำเป็นสำหรับจัดการทุกอย่างใน MinIO
- Data Path (เส้นทางข้อมูล): ที่เก็บ object และ metadata ทั้งหมด โดยค่า default คือ
/Applications/ServBay/data/minio
สามารถคลิก ไอคอนโฟลเดอร์ ทางขวาเพื่อเปิดโฟลเดอร์นี้ใน Finder ได้ทันที
- Bind IP (ผูก IP): IP ที่ MinIO ฟังรอการเชื่อมต่อ ค่าเริ่มต้น
3. บันทึกการตั้งค่าและเริ่มบริการ
- หลังใส่ค่าทุกอย่างแล้ว ให้คลิกปุ่ม บันทึก (Save) ที่มุมขวาล่าง
- หากเรียบร้อยดี ไฟบอกสถานะบริการจะเป็นสีเขียว แปลว่า MinIO ทำงานสำเร็จพร้อมใช้งาน
4. เข้าถึง MinIO Web Console
หนึ่งในจุดเด่นของ ServBay คือมี web console สำหรับ MinIO ติดตั้งให้เลยโดยอัตโนมัติ:
วิธีแรก: ในหน้าตั้งค่า MinIO คลิก ไอคอนเบราว์เซอร์ (รูปร่างเหมือนเข็มทิศ) ที่มุมขวาบน ServBay จะเปิดคอนโซล MinIO ในเว็บเบราว์เซอร์เริ่มต้นของคุณให้เอง
วิธีที่สอง: พิมพ์
https://minio.servbay.host/
ในเบราว์เซอร์โดยตรงล็อกอินด้วย
Root user
และRoot password
ที่คุณตั้งไว้ตอนข้อ 2
หลังเข้าสู่ระบบแล้ว คุณสามารถสร้าง bucket (ถังเก็บข้อมูล) อัปโหลดและจัดการไฟล์ต่าง ๆ (object) ตั้งค่านโยบายการเข้าถึง ฯลฯ ผ่านหน้าเว็บที่ใช้ง่ายนี้ได้ทันที
5. ใช้งาน MinIO ในแอปพลิเคชัน
แอปพลิเคชันของคุณ (เช่น PHP, Node.js, Python ฯลฯ) สามารถเชื่อมต่อกับ MinIO บน ServBay ได้โดย SDK ที่รองรับ S3 ทั่วไป ข้อมูลหลักที่ต้องใช้คือ:
- Endpoint (ปลายทาง):
http://127.0.0.1:9000
- Access Key ID (รหัสผู้ใช้):
Root user
ที่คุณตั้งไว้ (เช่นminio
) - Secret Access Key (รหัสผ่านเข้าถึง):
Root password
- Use path style endpoint (ใช้ path style endpoint): แนะนำให้ตั้งเป็น
true
ตัวอย่างโค้ด PHP (ใช้ AWS SDK for PHP)
ติดตั้ง SDK ก่อน:
bash
composer require aws/aws-sdk-php
1
จากนั้นตั้งค่า client และเรียกใช้ในโค้ดของคุณ:
php
<?php
require 'vendor/autoload.php';
use Aws\S3\S3Client;
use Aws\Exception\AwsException;
$s3Client = new S3Client([
'profile' => 'default',
'version' => 'latest',
'region' => 'us-east-1', // สำหรับ MinIO ตั้ง region เป็นอะไรก็ได้
'endpoint' => 'http://127.0.0.1:9000',
'use_path_style_endpoint' => true,
'credentials' => [
'key' => 'minio', // Root user ของคุณ
'secret' => 'your-strong-password', // Root password ของคุณ
],
]);
try {
$buckets = $s3Client->listBuckets();
foreach ($buckets['Buckets'] as $bucket) {
echo $bucket['Name'] . "\n";
}
} catch (AwsException $e) {
// แสดงข้อความข้อผิดพลาด
echo "Error: " . $e->getMessage() . "\n";
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
คำถามที่พบบ่อย (FAQ)
- ถาม: ลืม Root password ของ MinIO จะรีเซ็ตได้ยังไง?
- ตอบ: รีเซ็ตรหัสผ่านผ่าน ServBay ได้ง่ายมาก แค่เข้าไปที่หน้าตั้งค่า MinIO แล้วกรอกรหัสใหม่ คลิก บันทึก (Save) และรีสตาร์ทบริการ MinIO ServBay จะอัปเดต config ให้เองโดยอัตโนมัติ
- ถาม: MinIO สตาร์ทไม่ขึ้น ควรทำอย่างไร?
- ตอบ: ตรวจสอบตามนี้:
- คลิกไอคอนบันทึก log ที่มุมขวาบนในหน้าตั้งค่า MinIO เพื่อดูรายละเอียดข้อผิดพลาด
- ตรวจสอบว่าพอร์ต
9000
ไม่ถูกแอปอื่นใช้ซ้ำ - ดูว่า
Data Path
ที่ตั้งไว้อยู่จริงและ ServBay มีสิทธิอ่าน/เขียนไดเรกทอรีนี้
- ตอบ: ตรวจสอบตามนี้:
- ถาม: จะเปลี่ยนพอร์ต API ของ MinIO ได้มั้ย?
- ตอบ: ได้เลย เข้าไปแก้ไขช่อง
API Port
ในหน้าตั้งค่า MinIO แล้วกดบันทึก จากนั้นรีสตาร์ทบริการ จำเป็นต้องอัปเดตแอปของคุณให้เชื่อมต่อกับพอร์ตใหม่ด้วย
- ตอบ: ได้เลย เข้าไปแก้ไขช่อง
สรุป
ด้วย ServBay คุณสามารถตั้งค่าและรัน MinIO instance สำหรับ object storage ที่รองรับ S3 บน macOS ได้อย่างรวดเร็วและง่ายดาย มอบความสะดวกสำหรับการทดสอบและพัฒนาแอปในเครื่องที่ต้องการ S3 compatible storage นักพัฒนาจึงโฟกัสกับการเขียนโค้ดธุรกิจโดยไม่ต้องเสียเวลากับการตั้งค่าสภาพแวดล้อมอีกต่อไป