-H 뒤에 호스트 이름이 옵니다. IP인 경우 앞에 http를 추가해야 합니다(예: http://172.21 ) . 그 뒤에 access_key가 옵니다(예: YT**********). ************ -s 다음에 JlNVoLfLuJJ********************************와 같은 secret_key를 추가합니다. *
(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.py입니다. 사용 시 -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***********************
조각난 멀티스레드에서 대용량 파일(8M 이상)을 다운로드하려면 thread-download.py 스크립트를 사용하세요. 8M 미만의 작은 파일을 다운로드하려면 -t 매개변수를 0으로 지정하기만 하면 됩니다.
(1) 필수 매개변수 -H는 호스트 주소입니다. 예를 들어 172.21과 같이 앞에 http를 추가할 필요가 없습니다. 예를 들어 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을 다운로드하려면 - p 뒤에 test1을 추가하고, test2를 다운로드하려면 -p 뒤에 test1/test2를 추가하세요.
기본 매개변수를 사용하여 다운로드
[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 디렉터리는 버킷 이름 test12에 werfefdsa/dffds를 다운로드합니다.
[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 디렉터리는 버킷 이름 test12에 werfefdsa/를 다운로드합니다.
여러 스레드에서 대용량 파일(8M 이상)을 업로드하려면 thread-upload.py 스크립트를 사용하세요. 기본적으로 8M 슬라이스는 10개의 스레드에 업로드됩니다. 8M보다 작은 작은 파일을 업로드하려면 지정하기만 하면 됩니다. -t 매개변수를 0으로 설정합니다.
(1) 필수 매개변수 -H는 호스트 주소입니다. 예를 들어 172.21과 같이 앞에 http를 추가할 필요가 없습니다. 예를 들어 YT*****입니다 . ****************
-s 사용자의 secret_key(예: JlNVoLfLuJJ******************************)
-b 객체를 업로드할 버킷의 이름(예: test12) -o 업로드할 객체의 경로입니다. 버킷에 직접 업로드하는 경우에는 -o 매개변수를 작성할 필요가 없습니다. 버킷 아래의 폴더에 업로드하려면 -o를 폴더 경로로 지정해야 합니다. -f를 업로드하려면 객체의 로컬 파일 경로(예: /home/wuchen/wuchen/download/download-file)를 지정해야 합니다.
(2) 선택적 매개변수 -t는 스레드 수를 지정합니다. 기본값은 10개입니다. -c는 조각 크기를 M으로 지정합니다. 기본값은 8M입니다.
upload-folder.py 스크립트를 사용하여 버킷에 로컬로 지정된 경로를 반복적으로 업로드하거나 버킷 아래 디렉터리에 업로드할 수 있습니다. 매개변수 구문 분석은 다음과 같습니다. -H 호스트 주소 IP를 쓰는 경우 앞에 http를 추가할 필요가 없습니다(예: 172.21) . -a 사용자의 access_key(예: YT****************) **
-s 사용자의 secret_key(예: JlNVoLfLuJJ******************************)
-b 업로드할 디렉터리의 버킷 이름
-l 업로드 디렉터리는 로컬 경로 위치에 저장됩니다. -d 버킷에 직접 업로드되는 경우 로컬로 지정된 경로를 사용하여 폴더를 반복적으로 업로드합니다. 버킷 아래의 디렉터리 경로인 경우 전체 경로가 제공됩니다. 예를 들어 버킷 아래 test1 디렉터리 아래의 하위 디렉터리 test2에 업로드하는 경우 -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개의 스레드를 사용하여 2천만 개의 조각으로 업로드하고 버킷 아래의 /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
버킷 test12 아래의 werfefdsa 디렉터리에 로컬 디렉터리를 업로드합니다.
[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