[file] 한 S3 계정에서 다른 계정으로 파일을 직접 이동 하시겠습니까?

아주 기본적인 질문이지만 답을 찾지 못했습니다. Transit을 사용하여 한 AWS 계정의 한 S3 버킷에서 다른 AWS 계정의 다른 S3 버킷으로 파일을 “이동”할 수 있지만 실제로하는 일은 첫 번째 파일에서 파일을 다운로드 한 다음 두 번째 버킷으로 업로드하는 것입니다.

파일을 다운로드하지 않고 한 S3 계정에서 다른 계정으로 직접 파일을 이동할 수있는 방법이 있습니까?



답변

준비된 솔루션을 찾고 있다면이를 수행 할 수있는 몇 가지 솔루션이 있습니다. Bucket Explorer 는 Mac과 Windows에서 작동하며 Cloudberry S3 ExplorerS3 Browser 와 마찬가지로 계정간에 복사 할 수 있지만 Windows 전용이므로 작동하지 않을 수 있습니다.

AWS 콘솔 이 적절한 권한 설정으로도이를 수행 할 수 있다고 생각 하지만 테스트하지는 않았습니다.

대상 버킷에 대한 쓰기 권한 을 사용중인 AWS 계정에 부여한 경우 AWS API 를 사용하여 수행 할 수도 있습니다 .


답변

예, 방법이 있습니다. 찾기 어렵지만 꽤 간단합니다. 8)

예를 들어 첫 번째 계정 사용자 이름이 acc1@gmail.com이고 두 번째 계정이 acc2@gmail.com이라고 가정합니다.

열기 AWS 관리 콘솔 ACC1있다. Amazon S3 버킷 속성으로 이동하여 “권한”탭에서 “권한 추가”를 클릭합니다. 그런 다음 “인증 된 사용자”에 대한 목록 및보기 권한을 추가합니다.

다음으로, acc2의 AWS IAM (콘솔 탭에서 액세스 가능)에서 S3 버킷에 대한 전체 액세스 권한이있는 사용자를 생성합니다 (보안을 강화하기 위해 정확한 권한을 설정할 수 있지만 전송을위한 임시 사용자 생성을 선호합니다). 삭제).

그런 다음 s3cmd (acc2에서 새로 생성 된 사용자의 자격 증명 사용)를 사용하여 다음과 같은 작업을 수행 할 수 있습니다.

s3cmd cp s3://acc1_bucket/folder/ s3://acc2_bucket/folder --recursive

모든 전송은 Amazon 측에서 이루어집니다.


답변

사용 AWS의 CLI를 (I 14 EC2 인스턴스 우분투를 사용) 바로 다음 명령을 실행합니다 :

aws s3 sync s3://bucket1 s3://bucket2

하나에 대한 계정 세부 정보를 지정하고 다른 하나에 대한 공개 쓰기 액세스 또는 공개 읽기 액세스 권한이 있어야합니다.

이렇게하면 두 버킷이 동기화됩니다. 나중에 동일한 명령을 다시 사용하여 빠르게 동기화 할 수 있습니다. 가장 좋은 점은 대역폭이 필요하지 않은 것 같습니다 (예 : 파일이 로컬 컴퓨터를 통과하지 않음).


답변

boto 가 잘 작동합니다. 이 스레드를 참조하십시오 . boto를 사용하면 객체를 로컬 머신에 다운로드하고 다른 버킷에 업로드하는 대신 한 버킷에서 다른 버킷으로 직접 복사합니다.


답변

Mac OS XI에서는 Panic의 Transmit 앱을 사용했습니다. 각 S3 계정에 대해 하나의 창을 열었습니다 (API 키 및 암호 사용). 그런 다음 한 창의 한 버킷에서 다른 창의 다른 버킷으로 드래그 할 수 있습니다. 먼저 로컬에서 파일을 다운로드 할 필요가 없습니다 .

Andrew가 맞습니다. Transmit은 파일을 로컬로 다운로드 한 다음 파일을 업로드합니다.


답변

한 계정에서 다른 계정으로 S3 파일 이동

두 개의 계정 소스 계정과 대상 계정이 있다고 가정 해 보겠습니다. 그리고 두 개의 버킷 source-bucketdestination bucket. 모든 파일을 source-bucket에서 destination-bucket. 다음 단계로 수행 할 수 있습니다.

  1. aws configure
    • 자격 증명 또는 IAM 역할을 사용하여 대상 계정을 구성합니다.
  2. 대상 계정 사용자에 대한 사용자 정책을 만듭니다.
  3. 소스 버킷 정책을 수정하고 여기에 대상 계정 사용자 정책을 추가하여 대상 사용자에게 소스 버킷에 대한 액세스 권한을 부여하십시오. 이렇게하면 대상 사용자가 소스 버킷에 액세스 할 수 있습니다.
  4. aws s3 ls s3://source-bucket/
    • 그러면 대상 계정에 소스 버킷에 대한 액세스 권한이 있는지 확인합니다. 확인을 위해 이렇게하십시오.
  5. aws s3 cp s3://source-bucket s3://destination-bucket --recursive
    • 그러면 소스 버킷의 모든 파일이 대상 버킷에 복사됩니다. 모든 파일은 –recursive 플래그를 사용하여 복사됩니다.
  6. aws s3 mv s3://source-bucket s3://destination-bucket --recursive
    • 그러면 모든 파일이 소스 버킷에서 대상 버킷으로 이동합니다.

또는 sync 명령을 사용할 수 있습니다. aws s3 sync s3://source-bucket s3://detination-bucket

더 나은 설명을 위해 링크를 따르십시오


답변

CrossFTP 는 S3 파일을 다운로드하지 않고도 한 버킷에서 다른 버킷으로 직접 복사 할 수 있습니다. Windows, Mac 및 Linux에서 작동하는 GUI S3 클라이언트입니다.