-H ตามด้วยชื่อโฮสต์ หากเป็น IP คุณต้องเพิ่ม http ไว้ข้างหน้า เช่น http: //172.21 -a ตามด้วย access_key เช่น YT******* *********** -s ตามด้วยเพิ่ม Secret_key เช่น JlNVoLfLuJJ****************************** *
(1) ลบที่เก็บข้อมูลเดียว สคริปต์ที่สอดคล้องกับฟังก์ชันนี้คือ thread-delete-bucket.py เมื่อใช้ ให้ระบุพารามิเตอร์ -b ตามด้วยชื่อที่เก็บข้อมูล
[wuchen@manager delete]$ python thread-delete-bucket.py -H http://172.21.*.* -a YT***************** -s JlNVoLfLuJJ*********************** -b test7
['test1', 'test2', 'test7']
[{'Key': u'osd.84.log'}] 1
(2) ลบรายการถัง สคริปต์ที่สอดคล้องกับฟังก์ชันนี้คือ thread-delete-buckets.py ก่อนใช้งาน คุณต้องเขียนชื่อถังหนึ่งรายการสำหรับแต่ละบรรทัดของรายการถังลงในไฟล์การกำหนดค่า ฟังก์ชันคือ thread-delete-buckets เมื่อใช้ ให้ระบุพารามิเตอร์ -f ตามด้วยพาธไปยังไฟล์คอนฟิกูเรชัน (รวมถึงชื่อไฟล์คอนฟิกูเรชัน)
[wuchen@manager delete]$ cat bucket.txt
test10
test3
test4
test5
test6
test7
test8
test9
[wuchen@manager delete]$ python thread-delete-buckets.py -H http://172.21.*.* -a YT***************** -s JlNVoLfLuJJ*********************** -f /home/wuchen/wuchen/delete/bucket.txt
deleting test10
[{'Key': u'osd.84.log'}] 1
deleting test3
[{'Key': u'osd.84.log'}] 1
deleting test4
[{'Key': u'osd.84.log'}] 1
deleting test5
[{'Key': u'osd.84.log'}] 1
deleting test6
[{'Key': u'osd.84.log'}] 1
deleting test7
[{'Key': u'osd.84.log'}] 1
deleting test8
[{'Key': u'osd.84.log'}] 1
deleting test9
[{'Key': u'osd.84.log'}] 1
(3) ลบที่เก็บข้อมูลทั้งหมดของผู้ใช้ สคริปต์ที่สอดคล้องกับฟังก์ชันนี้คือ thread-delete-user.py ต้องใช้พารามิเตอร์พื้นฐานเพียงสามตัวเท่านั้นในการลบที่เก็บข้อมูลทั้งหมดของผู้ใช้
[wuchen@manager delete]$ python thread-delete-user.py -H http://172.21.*.* -a YT***************** -s JlNVoLfLuJJ***********************
ใช้สคริปต์ thread-download.py เพื่อดาวน์โหลดไฟล์ขนาดใหญ่ (ขนาดใหญ่กว่า 8M) ในรูปแบบมัลติเธรดแบบกระจัดกระจาย หากคุณต้องการดาวน์โหลดไฟล์ขนาดเล็กน้อยกว่า 8M คุณจะต้องระบุพารามิเตอร์ -t เป็น 0 เท่านั้น
(1) พารามิเตอร์ที่จำเป็น -H คือที่อยู่โฮสต์ หากคุณเขียน IP คุณไม่จำเป็นต้องเพิ่ม http ไว้ข้างหน้า เช่น 172.21 -a Access_key ของผู้ใช้ เช่น YT****** ****************
-s Secret_key ของผู้ใช้ เช่น JlNVoLfLuJJ******************************
-b ชื่อของบัคเก็ตที่จะดาวน์โหลดออบเจ็กต์ เช่น test12 -o ชื่อของออบเจ็กต์ที่จะดาวน์โหลด เช่น python.tar.gz หากมีไดเร็กทอรีโฟลเดอร์หลายเลเยอร์ คุณจะต้องเขียน เส้นทางที่สมบูรณ์ -f วัตถุการดาวน์โหลดถูกเขียนไปยังเส้นทางไฟล์ในเครื่อง เช่น /home/wuchen/wuchen/download/download-file
(2) พารามิเตอร์ทางเลือก -t ระบุจำนวนเธรด ค่าเริ่มต้นคือ 10 เธรด
-c ระบุขนาดแฟรกเมนต์เป็น M ค่าเริ่มต้นคือ 8M
ใช้สคริปต์ download-folder.py เพื่อดาวน์โหลดโฟลเดอร์ในที่เก็บข้อมูล ฟังก์ชันนี้จะดาวน์โหลดไดเรกทอรีย่อยทั้งหมดในไดเรกทอรีซ้ำ
การวิเคราะห์พารามิเตอร์มีดังนี้: -H หากที่อยู่โฮสต์เขียนเป็น IP ไม่จำเป็นต้องเพิ่ม http ไว้ข้างหน้า เช่น 172.21 -a Access_key ของผู้ใช้ เช่น YT******* ***************
-s Secret_key ของผู้ใช้ เช่น JlNVoLfLuJJ******************************
-b ชื่อของที่เก็บข้อมูลซึ่งเป็นที่ตั้งของไดเร็กทอรีที่จะดาวน์โหลด
-f ข้อมูลไดเร็กทอรีดาวน์โหลดจะถูกจัดเก็บไว้ในตำแหน่งพาธในเครื่อง -p ไดเร็กทอรี s3 ที่จะดาวน์โหลด หากเป็นไดเร็กทอรีหลายระดับ จะต้องระบุพาธที่สมบูรณ์ ตัวอย่างเช่น มีไดเร็กทอรี test1 อยู่ใต้บัคเก็ต และ test1 มีไดเร็กทอรี test2 หากคุณต้องการดาวน์โหลด test1 ให้เพิ่ม test1 หลัง p เพื่อดาวน์โหลด test2 ให้เพิ่ม test1/test2 หลัง -p
ดาวน์โหลดโดยใช้พารามิเตอร์เริ่มต้น
[wuchen@manager download]$ python thread-download.py -H 172.21.*.* -a YT***************** -s JlNVoLfLuJJ*********************** -b test12 -o python.tar.gz -f /home/wuchen/wuchen/download/download-file
ดาวน์โหลดโดยใช้ 15 เธรด การแบ่งส่วนตามค่าเริ่มต้น
[wuchen@manager download]$ python thread-download.py -H 172.21.*.* -a YT***************** -s JlNVoLfLuJJ*********************** -b test12 -o python.tar.gz -f /home/wuchen/wuchen/download/download-file -t 20
ใช้ 20 เธรดในการดาวน์โหลด และการกระจายตัวคือ 20M
[wuchen@manager download]$ python thread-download.py -H 172.21.*.* -a YT***************** -s JlNVoLfLuJJ*********************** -b test12 -o python.tar.gz -f /home/wuchen/wuchen/download/download-file -t 20 -c 20
ดาวน์โหลดไฟล์ขนาดเล็กเพียงไฟล์เดียว
wuchen@manager download]$ python thread-download.py -H 172.21.*.* -a YT***************** -s JlNVoLfLuJJ*********************** -b test12 -o python.tar.gz -f /home/wuchen/wuchen/download/download-file -t 0
[wuchen@manager download]$ python download-folder.py -H http://172.21.*.* -a YT***************** -s JlNVoLfLuJJ*********************** -f /home/wuchen/wuchen/s3-tool/download/result22 -p werfefdsa/dffds -b test12
หลังจากดำเนินการคำสั่งนี้แล้ว ไดเร็กทอรี result22 ในเครื่องจะดาวน์โหลด werfefdsa/dffds ในชื่อบัคเก็ต test12
[wuchen@manager download]$ python download-folder.py -H http://172.21.*.* -a YT***************** -s JlNVoLfLuJJ*********************** -f /home/wuchen/wuchen/s3-tool/download/result22 -p werfefdsa -b test12
หลังจากดำเนินการคำสั่งแล้ว ไดเร็กทอรี result22 ในเครื่องจะดาวน์โหลด werfefdsa/ ในชื่อบัคเก็ต test12
ใช้สคริปต์ thread-upload.py เพื่ออัปโหลดไฟล์ขนาดใหญ่ (ขนาดใหญ่กว่า 8M) ในหลายเธรด ตามค่าเริ่มต้น ส่วน 8M จะถูกอัปโหลดใน 10 เธรด หากคุณต้องการอัปโหลดไฟล์ขนาดเล็กกว่า 8M คุณเพียงแค่ต้องระบุเท่านั้น พารามิเตอร์ -t เป็น 0
(1) พารามิเตอร์ที่จำเป็น -H คือที่อยู่โฮสต์ หากคุณเขียน IP คุณไม่จำเป็นต้องเพิ่ม http ไว้ข้างหน้า เช่น 172.21 -a Access_key ของผู้ใช้ เช่น YT****** ****************
-s Secret_key ของผู้ใช้ เช่น JlNVoLfLuJJ******************************
-b ชื่อของที่เก็บข้อมูลที่จะอัปโหลดวัตถุ เช่น test12 -o เส้นทางของวัตถุที่จะอัปโหลด หากคุณอัปโหลดไปยังที่เก็บข้อมูลโดยตรง คุณไม่จำเป็นต้องเขียนพารามิเตอร์ -o คุณอัปโหลดไปยังโฟลเดอร์ใต้บัคเก็ต คุณต้องระบุ -o เป็นเส้นทางโฟลเดอร์ -f ที่จะอัปโหลด
(2) พารามิเตอร์ทางเลือก -t ระบุจำนวนเธรด ค่าเริ่มต้นคือ 10 เธรด สามารถละเว้นได้ -c ระบุขนาดแฟรกเมนต์ใน M โดยค่าเริ่มต้นคือ 8M สามารถละเว้นได้
ใช้สคริปต์ upload-folder.py เพื่ออัปโหลดโฟลเดอร์ที่มีเส้นทางที่ระบุในเครื่องไปยังบัคเก็ตโดยตรง หรือคุณสามารถอัปโหลดไปยังไดเร็กทอรีภายใต้บัคเก็ตได้ การแยกวิเคราะห์พารามิเตอร์มีดังนี้: -H Host address หากคุณเขียน IP ในกรณีนี้ ไม่จำเป็นต้องเพิ่ม http ไว้ข้างหน้า เช่น 172.21 -a access_key ของผู้ใช้ เช่น YT****************** **
-s Secret_key ของผู้ใช้ เช่น JlNVoLfLuJJ******************************
-b ชื่อบัคเก็ตของไดเร็กทอรีที่จะอัพโหลด
-l ไดเรกทอรีการอัปโหลดจะถูกจัดเก็บไว้ในตำแหน่งเส้นทางในเครื่อง -d อัปโหลดโฟลเดอร์ซ้ำด้วยเส้นทางที่ระบุในเครื่องไปยังตำแหน่งเส้นทางด้านล่างที่ฝากข้อมูล หากถูกอัปโหลดโดยตรงไปยังที่เก็บข้อมูล ให้ระบุ -d root ไปยังพาธไดเร็กทอรีใต้บัคเก็ต จากนั้นให้ระบุพาธที่สมบูรณ์ ตัวอย่างเช่น เมื่ออัปโหลดไปยังไดเร็กทอรีย่อย test2 ใต้ไดเร็กทอรี test1 ใต้บัคเก็ต ให้ระบุ -d test1/test2
อัปโหลดโดยใช้พารามิเตอร์เริ่มต้น
python thread-upload.py -H 172.21.*.* -a YT***************** -s JlNVoLfLuJJ*********************** -b test12 -f /home/wuchen/wuchen/upload/iflyek_url_tesy-1.0.1.100247.jar
ใช้ 15 เธรดในการดาวน์โหลด โดยแบ่งส่วนตามค่าเริ่มต้น และอัปโหลดไปยังไดเร็กทอรี test1 ใต้บัคเก็ต
python thread-upload.py -H 172.21.*.* -a YT***************** -s JlNVoLfLuJJ*********************** -b test1 -o test1 -f /home/wuchen/wuchen/upload/iflyek_url_tesy-1.0.1.100247.jar -t 15
ใช้ 20 เธรดในการอัปโหลด อัปโหลดในส่วนย่อย 20M และอัปโหลดไปยังไดเร็กทอรีย่อย /test1/test2/test3 ใต้บัคเก็ต
python thread-upload.py -H 172.21.*.* -a YT***************** -s JlNVoLfLuJJ*********************** -b test12 -o /test1/test2/test3 -f /home/wuchen/wuchen/upload/iflyek_url_tesy-1.0.1.100247.jar -t 20 -c 20
อัปโหลดไดเร็กทอรีในเครื่องโดยตรงไปยังที่เก็บข้อมูล test12
[wuchen@manager upload]$ python upload-folder.py -H http://172.21.*.* -a YT***************** -s JlNVoLfLuJJ*********************** -b test12 -l /home/wuchen/wuchen/s3-tool/upload/download -d root
อัปโหลดไดเร็กทอรีในเครื่องไปยังไดเร็กทอรี werfefdsa ภายใต้ bucket test12
[wuchen@manager upload]$ python upload-folder.py -H http://172.21.*.* -a YT***************** -s JlNVoLfLuJJ*********************** -b test12 -l /home/wuchen/wuchen/s3-tool/upload/download -d werfefdsa
ใช้แพ็คเกจ jar java-upload-download.jar เพื่ออัปโหลดและดาวน์โหลด พารามิเตอร์บรรทัดคำสั่งระบุไว้ดังนี้: (1) อัปโหลดไฟล์หรือไดเร็กทอรี java -jar iflytek_url_tesy-1.0.1.10023.jar + ชื่ออ็อบเจ็กต์ (รวมถึงเส้นทางไดเร็กทอรีที่อัปโหลดไปยังบัคเก็ต) + จำนวนเธรด + ขนาดแฟรกเมนต์ + ไฟล์หรือเส้นทางไดเร็กทอรีที่อัปโหลด + สตริงการอัปโหลด (เพื่อแยกแยะว่ากำลังอัปโหลดหรือดาวน์โหลด)
(2) ดาวน์โหลดไฟล์ (ไดเรกทอรีดาวน์โหลดยังคงมีแนวโน้มที่จะเกิดข้อผิดพลาด)
พารามิเตอร์ที่ตามหลัง java -jar s3-tool-java.jar คือชื่อบัคเก็ต + ชื่อของไฟล์ที่จะดาวน์โหลด (รวมถึงเส้นทางแบบเต็มภายใต้บัคเก็ต) + จำนวนเธรด + ขนาดแฟรกเมนต์ + ไฟล์หรือเส้นทางไดเร็กทอรี เพื่อดาวน์โหลดไปยังท้องถิ่น + สตริงการดาวน์โหลด
ตัวอย่างการใช้งาน
1.上传文件夹,将文件夹 /lustre2/dlp/esxu/lustre-soft/上传到bucket下面
[root@jobsub-9-073 wuchen]# java -jar s3-tool-java.jar test-bucket test5 6 5242880 /lustre2/dlp/esxu/lustre-soft/ upload
Uploading etc
[########################################]: Completed
thread upload run time: 34s
2.上传文件 将文件/lustre2/dlp/esxu/test1.tar 上传到bucket test-bucket 下面,名称为test1.tar
[root@jobsub-9-073 wuchen]# java -Xmx10m -jar s3-tool-java.jar test-bucket test1.tar 10 5242880 /lustre2/dlp/esxu/test1.tar upload
Uploading etc
[########################################]: Completed
thread upload run time: 17s
3.下载文件 下载bucket下面的test1.tar 到本地重命名为 /lustre2/dlp/esxu/test2.tar
[root@jobsub-9-073 wuchen]# java -Xmx10m -jar s3-tool-java.jar test-bucket test1.tar 10 5242880 /lustre2/dlp/esxu/test2.tar download
Downloading etc
[########################################]: Completed
thread upload run time: 17s