>

버킷 복제를위한 s3cmd 보다 더 나은 명령 줄 도구를 찾으려고 노력했습니다. 와이즈 비즈  각 파일을 다운로드하고 업로드하지 않고도 버킷을 복제 할 수 있습니다. s3cmd를 사용하여 버킷을 복제하기 위해 일반적으로 실행하는 명령은 다음과 같습니다.

s3cmd

이 작동하지만 API를 통해 각 파일을 한 번에 하나씩 복사하므로 속도가 매우 느립니다. 만약 s3cmd cp -r --acl-public s3://bucket1 s3://bucket2  병렬 모드로 실행할 수 있습니다. 매우 기뻤습니다.

사람들이 s3cmd 보다 빠른 버킷을 복제하는 데 사용하는 명령 줄 도구 또는 코드로 사용할 수있는 다른 옵션이 있습니까? ?

편집 : s3cmd-modification 은 내가 원하는 것입니다. 작동하지 않습니다. 다른 옵션이 있습니까?

s3cmd

  • 답변 # 1

    AWS CLI가 완벽하게 작동하는 것으로 보이며 공식적으로 지원되는 도구라는 보너스가 있습니다.

    aws s3 sync s3://mybucket s3://backup-mybucket
    
    

    http://docs.aws.amazon.com/cli/latest/reference/s3/sync.html

    기본적으로 동시 전송을 지원합니다. http://docs.aws.amazon.com/cli/latest/topic/s3-config.html#max-concurrent-requests

    를 참조하십시오.

    많은 수의 작은 파일을 빠르게 전송하려면 EC2 인스턴스에서 스크립트를 실행하여 대기 시간을 줄이고 max_concurrent_requests 를 늘리십시오  대기 시간의 영향을 줄입니다. 예 :

    aws configure set default.s3.max_concurrent_requests 200
    
    

  • 답변 # 2

    AWS 콘솔을 사용하지 않는다면 다음을 수행 할 수 있습니다.

    <올>

    첫 번째 버킷에서 모든 파일/폴더 선택

    액션>복사를 클릭

    새 버킷을 만들어 선택

    액션>붙여 넣기를 클릭

    아직 속도가 느리지 만 혼자 내버려두면됩니다.

  • 답변 # 3

    s3cmd AWS 웹 콘솔을 사용하여 두 개의 버킷을 복제하려고했습니다.  그리고 AWS CLI. 이러한 방법은 대부분 작동하지만 고통스럽게 느립니다.

    그런 다음 s3s3mirror 를 찾았습니다  : 두 개의 S3 버킷을 동기화하기위한 특수 도구입니다. 멀티 스레드이며 다른 시도 방법보다 훨씬 빠릅니다. 기가 바이트 단위의 데이터를 한 AWS 리전에서 다른 리전으로 신속하게 옮겼습니다.

    https://github.com/cobbzilla/s3s3mirror에서 확인하거나 https://registry.hub.docker.com/u/pmoust/s3s3mirror/

  • 답변 # 4

    adzoc 솔루션의 경우 aws cli 를 사용하십시오.  버킷 간 동기화 :

    aws s3 sync  속도는 다음에 따라 다릅니다.
    -S3 엔드 포인트에 대한 API 호출 대기 시간
    -동시 API 호출 횟수

    동기화 속도를 높이려면 :
    - aws s3 sync 를 실행  AWS 인스턴스에서 (FreeBSD의 c3.large는 정상입니다 ;-))
    -~/.aws/config를 다음과 같이 업데이트하십시오 :
      - max_concurrent_requests = 128
      - max_queue_size = 8096                                             

    다음 구성 및 인스턴스 유형으로 474 초 내에 버킷 (309GB, 72K 파일, us-east-1)을 동기화 할 수있었습니다.

    보다 일반적인 솔루션은 AWS DataPipeLine 또는 S3 교차 리전 복제를 고려하십시오.

  • 답변 # 5

    다른 S3 명령 줄 도구는 모르지만 여기에 아무것도 나타나지 않으면 가장 쉬운 방법 일 수 있습니다 직접 작성하십시오.

    원하는 언어와 Amazon SDK/Toolkit을 선택하십시오. 그런 다음 소스 버킷 내용을 나열/검색하고 각 파일을 복사해야합니다 (병렬로)

    s3cmd-modification의 소스를 보면 (파이썬에 대해서는 아무것도 모른다는 것을 인정합니다), 버킷 간 코드를 병렬화하지는 않았지만 표준 업로드/다운로드 병렬 코드를 시작 지점입니다.

  • 이전 java - Mockito는 모든 클래스 인수와 일치
  • 다음 linux - 줄 번호에서 파일 분할을하는 방법