ข้อที่ 3 การสร้าง S3 Bucket และการตั้งค่าการเข้าถึงไฟล์แบบสาธารณะ พร้อมทดสอบการเปิดไฟล์ผ่าน Web Browser
🧠 เป้าหมาย
- สร้าง S3 bucket ชื่อ
s3xxxxyyyy(แทนxxxxและyyyyตามรหัสนักศึกษา) - อัปโหลดไฟล์ใดไฟล์หนึ่ง (เช่น
.jpg,.pdf,.txt) - ตั้งค่าให้ไฟล์สามารถเข้าถึงได้แบบ Public
- ทดสอบการเข้าถึงลิงก์ผ่าน Web browser
- ถ่ายภาพ หน้าจอเดียว แสดงชื่อ bucket, รายชื่อไฟล์ และหน้า browser ที่เปิดไฟล์สำเร็จ
🧰 บริการที่เกี่ยวข้อง
- Amazon S3 (Simple Storage Service): ใช้สำหรับเก็บไฟล์แบบ Object Storage
- Public Access Settings / ACL: ใช้สำหรับกำหนดว่าไฟล์ใน bucket สามารถเข้าถึงได้จากสาธารณะหรือไม่
- S3 Static Hosting (optional): ไม่จำเป็นในข้อนี้ แต่เป็นแนวทางเพิ่มเติมถ้าเปิดทั้งโฟลเดอร์เป็นเว็บ
🛠️ ขั้นตอนการทำ
1. สร้าง S3 Bucket
- ไปที่ S3 Dashboard บน AWS Console
- คลิก Create bucket
-
กำหนด:
- Bucket name:
s3xxxxyyyy
- Bucket name:
-
ในส่วน Block Public Access settings for this bucket:
- เอาเครื่องหมายถูกออก ตรง “Block all public access”
- ยืนยันว่าต้องการให้เปิด public ติ๊กถูกที่ I acknowledge that the current settings might result in this bucket and the objects within becoming public.
- คลิก Create bucket
2. อัปโหลดไฟล์เข้าไปใน Bucket
- คลิกเข้าไปใน bucket ที่สร้างไว้
- กดปุ่ม Upload
- เลือกไฟล์และเพิ่มไฟล์อะไรก็ได้ เช่น
hello.jpg,mycv.pdf,test.txt - กด Upload
3. ตรวจสอบและคัดลอกลิงก์
- เมื่อไฟล์อัปโหลดเสร็จ คลิกชื่อไฟล์
-
ในหน้า Object overview ให้ดูช่อง Object URL เช่น:
https://s3-ap-southeast-1.amazonaws.com/s3xxxxyyyy/test.txt
ถ้าไม่ได้โดยขึ้นว่า This XML file does not appear to have any style information associated with it. The document tree is shown below.
AccessDenied...✅ วิธีแก้ให้ไฟล์ใน S3 เข้าถึงแบบ Public (ใช้ Bucket Policy)
- ไปที่ S3 Console → คลิกชื่อ Bucket ของคุณ
- ไปที่แท็บ Permissions → หาหมวด “Bucket Policy”
- คลิก Edit และวางโค้ดนี้ลงไป (แก้ชื่อ bucket ให้ตรงกับของคุณ):
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowPublicRead",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::s3xxxxyyyy/*"
}
]
}
แทน
s3xxxxyyyyด้วยชื่อ bucket ของคุณจริง ๆ เช่นs312349876abcd
- กด Save changes
4. ทดสอบใน Web Browser
- เปิด Chrome หรือ Browser อื่น แล้ววางลิงก์ในช่อง address bar
- ถ้าเปิดได้แสดงว่า public access สำเร็จ
📸 สิ่งที่ต้องแคปส่ง
รวมทั้งหมดใน ภาพเดียว โดยให้เห็น:
- ชื่อ Bucket (
s3xxxxyyyy) - ชื่อไฟล์ที่อยู่ข้างใน Bucket
- หน้า Browser ที่เปิดลิงก์ของไฟล์สำเร็จ พร้อมแสดง URL บน address bar