9 คำสั่ง AWS S3 พร้อมตัวอย่างในการจัดการบัคเก็ตและข้อมูล

เผยแพร่แล้ว: 2022-03-15

การควบคุมและการจัดการข้อมูลอาจเป็นงานที่หนักหน่วง คำสั่ง AWS S3 เหล่านี้จะช่วยให้คุณจัดการบัคเก็ตและข้อมูล AWS S3 ได้อย่างรวดเร็วและมีประสิทธิภาพ

AWS S3 เป็นบริการจัดเก็บอ็อบเจ็กต์ที่ให้บริการโดย AWS เป็นบริการจัดเก็บข้อมูลที่ใช้กันอย่างแพร่หลายมากที่สุดจาก AWS ที่สามารถเก็บข้อมูลได้ไม่จำกัด มีความพร้อมใช้งานสูง ทนทาน และผสานรวมกับบริการอื่นๆ ของ AWS ได้ง่าย

AWS S3 สามารถใช้ได้กับผู้ที่มีความต้องการใดๆ เช่น พื้นที่จัดเก็บแอปพลิเคชันมือถือ/เว็บ พื้นที่เก็บข้อมูลขนาดใหญ่ การจัดเก็บข้อมูลการเรียนรู้ของเครื่อง การโฮสต์เว็บไซต์แบบคงที่ และอื่นๆ อีกมากมาย

หากคุณเคยใช้ S3 ในโครงการของคุณ คุณจะรู้ว่าด้วยความจุพื้นที่จัดเก็บที่มากมาย การจัดการที่เก็บข้อมูล 100s และเทราไบต์ในบัคเก็ตเหล่านี้อาจเป็นงานที่มีความต้องการสูง เรามีรายการคำสั่ง AWS S3 พร้อมตัวอย่างที่คุณสามารถใช้เพื่อจัดการบัคเก็ตและข้อมูล AWS S3 ของคุณได้อย่างมีประสิทธิภาพ

การตั้งค่า AWS CLI

หลังจากที่คุณดาวน์โหลดและติดตั้ง AWS CLI สำเร็จแล้ว คุณต้องกำหนดค่า AWS Credentials เพื่อให้สามารถเข้าถึงบัญชีและบริการ AWS ของคุณได้ ให้เราดำเนินการอย่างรวดเร็วเกี่ยวกับวิธีกำหนดค่า AWS CLI

ขั้นตอนแรกคือการสร้างผู้ใช้ที่มีสิทธิ์เข้าถึงบัญชี AWS ทางโปรแกรม อย่าลืมทำเครื่องหมายที่ช่องนี้เมื่อคุณสร้างผู้ใช้สำหรับ AWS CLI

ให้สิทธิ์และสร้างผู้ใช้ ที่หน้าจอสุดท้ายหลังจากที่คุณสร้างผู้ใช้รายนี้สำเร็จแล้ว ให้คัดลอกรหัสคีย์การเข้าถึงและรหัสลับสำหรับผู้ใช้รายนี้ เราจะใช้ข้อมูลประจำตัวเหล่านี้เพื่อเข้าสู่ระบบผ่าน AWS CLI

ไปที่เทอร์มินัลที่คุณเลือกแล้วรันคำสั่งต่อไปนี้

 aws กำหนดค่า

ป้อน ID คีย์การเข้าถึง และ คีย์การเข้าถึงลับ เมื่อได้รับพร้อมท์ เลือกภูมิภาค AWS ที่คุณต้องการและรูปแบบเอาต์พุตคำสั่ง โดยส่วนตัวแล้วฉันชอบใช้รูปแบบ JSON ไม่ใช่เรื่องใหญ่ คุณสามารถเปลี่ยนค่าเหล่านี้ได้ในภายหลัง

ตอนนี้คุณสามารถเรียกใช้คำสั่ง AWS CLI ในคอนโซลได้แล้ว ตอนนี้ให้เราดำเนินการตามคำสั่ง AWS S3

cp

คำสั่ง cp เพียงคัดลอกข้อมูลไปยังและจากบัคเก็ต S3 สามารถใช้เพื่อคัดลอกไฟล์จากภายในเครื่องไปยัง S3 จาก S3 ไปยังภายในเครื่อง และระหว่างที่เก็บข้อมูล S3 สองถัง มีพารามิเตอร์อื่นๆ มากมายที่คุณสามารถระบุได้ด้วยคำสั่ง

ตัวอย่างเช่น พารามิเตอร์ -dryrun เพื่อทดสอบคำสั่ง พารามิเตอร์ –storage-class เพื่อระบุคลาสการจัดเก็บข้อมูลของคุณใน S3 พารามิเตอร์อื่นๆ เพื่อตั้งค่าการเข้ารหัส และอื่นๆ อีกมากมาย คำสั่ง cp ให้คุณควบคุมวิธีกำหนดค่าความปลอดภัยของข้อมูลใน S3 ได้อย่างสมบูรณ์

การใช้งาน

 aws s3 cp <SOURCE> <DESTINATION> [--ตัวเลือก]

ตัวอย่าง

คัดลอกข้อมูลจากภายในเครื่องไปยัง S3

 aws s3 cp file_name.txt s3://bucket_name/file_name_2.txt

คัดลอกข้อมูลจาก S3 ไปยัง local

 aws s3 cp s3://bucket_name/file_name_2.txt file_name.txt

คัดลอกข้อมูลระหว่างที่เก็บข้อมูล S3

 aws s3 cp s3://bucket_name/file_name.txt s3://bucket_name_2/file_name_2.txt

คัดลอกข้อมูลจากภายในเครื่องไปยัง S3 – IA

 aws s3 cp file_name.txt s3://bucket_name/file_name_2.txt --storage-class STANDARD_IA

คัดลอกข้อมูลทั้งหมดจากโฟลเดอร์ในเครื่องไปยัง S3

 aws s3 cp ./local_folder s3://bucket_name --recursive

ลส

คำสั่ง ls ใช้เพื่อแสดงรายการที่ฝากข้อมูลหรือเนื้อหาของที่เก็บข้อมูล ดังนั้น หากคุณเพียงแค่ต้องการดูข้อมูลเกี่ยวกับบัคเก็ตของคุณหรือข้อมูลในบัคเก็ตเหล่านี้ คุณสามารถใช้คำสั่ง ls

การใช้งาน:

 aws s3 ls ไม่มีหรือ <BUCKET_NAME> [--ตัวเลือก]

ตัวอย่าง

ลงรายการถังทั้งหมดในบัญชี

 aws s3 ls

เอาท์พุท:
2022-02-02 18:20:14 BUCKET_NAME_1
2022-03-20 13:12:43 BUCKET_NAME_2
2022-03-29 10:52:33 BUCKET_NAME_3

คำสั่งนี้แสดงรายการที่เก็บข้อมูลทั้งหมดในบัญชีของคุณพร้อมวันที่สร้างที่เก็บข้อมูล

แสดงรายการวัตถุระดับบนสุดทั้งหมดในที่เก็บข้อมูล

 aws s3 ls BUCKET_NAME_1 หรือ s3://BUCKET_NAME_1 

เอาท์พุท:
                           PRE ตัวอย่างคำนำหน้า/
2021-12-09 12:23:20 8754 file_1.png
2021-12-09 12:23:21 1290 file_2.json
2021-12-09 12:23:21 3088 file_3.html

คำสั่งนี้แสดงรายการอ็อบเจ็กต์ระดับบนสุดทั้งหมดในบัคเก็ต S3 โปรดทราบว่าวัตถุที่มีคำนำหน้า samplePrefix/ จะไม่แสดงที่นี่เฉพาะวัตถุระดับบนสุดเท่านั้น

แสดงรายการวัตถุทั้งหมดในถัง

 aws s3 ls BUCKET_NAME_1 หรือ s3://BUCKET_NAME_1 --recursive

เอาท์พุท:
2021-12-09 12:23:20 8754 file_1.png
2021-12-09 12:23:21 1290 file_2.json
2021-12-09 12:23:21 3088 file_3.html
2021-12-09 12:23:20 16328 samplePrefix/file_1.txt
2021-12-09 12:23:20 29325 samplePrefix/sampleSubPrefix/file_1.css

คำสั่งนี้แสดงรายการอ็อบเจ็กต์ทั้งหมดในบัคเก็ต S3 โปรดทราบว่าวัตถุที่มีคำนำหน้า samplePrefix/ และคำนำหน้าย่อยทั้งหมดจะแสดงขึ้นด้วย

mb

คำสั่ง mb ใช้สำหรับสร้างบัคเก็ต S3 ใหม่ นี่เป็นคำสั่งที่ค่อนข้างง่าย แต่ในการสร้างบัคเก็ตใหม่ ชื่อของบัคเก็ตใหม่ควรไม่ซ้ำกันในบัคเก็ต S3 ทั้งหมด

การใช้งาน

 aws s3 mb <BUCKET_NAME>

ตัวอย่าง

สร้างที่เก็บข้อมูลใหม่ในภูมิภาคเฉพาะ

 aws s3 mb myUniqueBucketName --region eu-west-1

mv

คำสั่ง mv เพียงแค่ย้ายข้อมูลเข้าและออกจากบัคเก็ต S3 เช่นเดียวกับคำสั่ง cp คำสั่ง mv ใช้เพื่อย้ายข้อมูลจากโลคัลไปยัง S3, S3 ไปยังโลคัล หรือระหว่างสองบัคเก็ต S3

ข้อแตกต่างระหว่างคำสั่ง mv และคำสั่ง cp คือเมื่อใช้คำสั่ง mv ไฟล์จะถูกลบออกจากแหล่งที่มา AWS ย้าย ไฟล์นี้ไปยังปลายทาง มีตัวเลือกมากมายที่คุณสามารถระบุได้ด้วยคำสั่ง

การใช้งาน

 aws s3 mv <SOURCE> <DESTINATION> [--ตัวเลือก]

ตัวอย่าง

ย้ายข้อมูลจากเครื่องไปยัง S3

 aws s3 mv file_name.txt s3://bucket_name/file_name_2.txt

ย้ายข้อมูลจาก S3 ไปยัง local

 aws s3 mv s3://bucket_name/file_name_2.txt file_name.txt

ย้ายข้อมูลระหว่างที่เก็บข้อมูล S3

 aws s3 mv s3://bucket_name/file_name.txt s3://bucket_name_2/file_name_2.txt

ย้ายข้อมูลจากเครื่องไปยัง S3 – IA

 aws s3 mv file_name.txt s3://bucket_name/file_name_2.txt --storage-class STANDARD_IA

ย้ายข้อมูลทั้งหมดจากคำนำหน้าใน S3 ไปยังโฟลเดอร์ในเครื่อง

 aws s3 mv s3://bucket_name/somePrefix ./localFolder --recursive

presign

คำสั่ง presign สร้าง URL ที่ลงนามล่วงหน้าสำหรับคีย์ในบัคเก็ต S3 คุณสามารถใช้คำสั่งนี้เพื่อสร้าง URL ที่ผู้อื่นสามารถใช้เพื่อเข้าถึงไฟล์ในคีย์บัคเก็ต S3 ที่ระบุได้

การใช้งาน

aws s3 กำหนด <OBJECT_KEY> – หมดอายุใน <TIME_IN_SECONDS>

ตัวอย่าง

สร้าง URL ที่ลงนามล่วงหน้าซึ่งมีอายุ 1 ชั่วโมงสำหรับออบเจ็กต์ในบัคเก็ต

 aws s3 presign s3://bucket_name/samplePrefix/file_name.png --expires-in 3600

เอาท์พุท:
https://s3.ap-south-1.amazonaws.com/bucket_name/samplePrefix/file_name.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIA4MCZT73PAX7ZMVFW%2F20220314%2Fap-south-1% 2Fs3%2Faws4_request&X-Amz-Date=20220314T054113Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=f14608bbf3e1f9f8d215eb5b439b87e167b4596b96bdbd1

rb

คำสั่ง rb ใช้เพื่อลบบัคเก็ต S3

การใช้งาน

 aws rb <BUCKET_NAME>

ตัวอย่าง

ลบบัคเก็ต S3

 aws s3 mb myBucketName
# คำสั่งนี้ล้มเหลวหากมีข้อมูลใด ๆ ในถังนี้

ลบบัคเก็ต S3 พร้อมกับข้อมูลในบัคเก็ต S3

 aws s3 mb myBucketName --force

rm

คำสั่ง rm ใช้เพื่อลบอ็อบเจ็กต์ในบัคเก็ต S3

การใช้งาน

 aws s3 rm <S3Uri_To_The_File>

ตัวอย่าง

ลบหนึ่งไฟล์จากบัคเก็ต S3

 aws s3 rm s3://bucket_name/sample_prefix/file_name_2.txt

ลบไฟล์ทั้งหมดที่มีคำนำหน้าเฉพาะในบัคเก็ต S3

 aws s3 rm s3://bucket_name/sample_prefix --recursive

ลบไฟล์ทั้งหมดในบัคเก็ต S3

 aws s3 rm s3://bucket_name --recursive

ซิงค์

คำสั่ง sync จะคัดลอกและอัปเดตไฟล์จากต้นทางไปยังปลายทาง เช่นเดียวกับคำสั่ง cp สิ่งสำคัญคือเราต้องเข้าใจความแตกต่างระหว่างคำสั่ง cp และคำสั่ง sync เมื่อคุณใช้ cp จะคัดลอกข้อมูลจากต้นทางไปยังปลายทางแม้ว่าข้อมูลจะมีอยู่แล้วในปลายทางก็ตาม

นอกจากนี้ยังจะไม่ลบไฟล์จากปลายทางหากไฟล์เหล่านั้นถูกลบออกจากแหล่งที่มา อย่างไรก็ตาม การซิงค์จะดูที่ปลายทางก่อนที่จะคัดลอกข้อมูลของคุณและคัดลอกเฉพาะไฟล์ใหม่และไฟล์ที่อัปเดตเท่านั้น คำสั่ง sync คล้ายกับการคอมมิตและผลักการเปลี่ยนแปลงไปยังรีโมตแบรนช์ในคอมไพล์ คำสั่งซิงค์มีตัวเลือกมากมายในการปรับแต่งคำสั่ง

การใช้งาน

 aws s3 sync <SOURCE> <DESTINATION> [--ตัวเลือก]

ตัวอย่าง

ซิงค์โฟลเดอร์ในเครื่องกับ S3

 ซิงค์ aws s3 ./local_folder s3://bucket_name

ซิงค์ข้อมูล S3 ไปยังโฟลเดอร์ในเครื่อง

 aws s3 ซิงค์ s3://bucket_name ./local_folder

ซิงค์ข้อมูลระหว่างที่เก็บข้อมูล S3 สองถัง

 aws s3 ซิงค์ s3://bucket_name s3://bucket_name_2

ย้ายข้อมูลระหว่างสองบัคเก็ต S3 ยกเว้นไฟล์ .txt ทั้งหมด

 aws s3 ซิงค์ s3://bucket_name s3://bucket_name_2 --exclude "*.txt

เว็บไซต์

คุณสามารถใช้บัคเก็ต S3 เพื่อโฮสต์เว็บไซต์แบบคงที่ได้ คำสั่งเว็บไซต์ใช้เพื่อกำหนดค่าการโฮสต์เว็บไซต์แบบคงที่ S3 สำหรับบัคเก็ตของคุณ

คุณระบุดัชนีและไฟล์ข้อผิดพลาด และ S3 จะให้ URL ที่คุณสามารถดูไฟล์ได้

การใช้งาน

 เว็บไซต์ aws s3 <S3_URI> [--ตัวเลือก]

ตัวอย่าง:

กำหนดค่าการโฮสต์แบบคงที่สำหรับบัคเก็ต S3 และระบุดัชนีและไฟล์ข้อผิดพลาด

 เว็บไซต์ aws s3 s3://bucket_name --index-document index.html --error-document error.html

บทสรุป

ฉันหวังว่าข้อมูลข้างต้นจะช่วยให้คุณมีแนวคิดเกี่ยวกับคำสั่ง AWS S3 ที่ใช้บ่อยเพื่อจัดการบัคเก็ต หากคุณสนใจที่จะเรียนรู้เพิ่มเติม คุณสามารถตรวจสอบรายละเอียดการรับรอง AWS