s3 버킷에서 특정 파일 복사

s3 버킷에서 특정 파일 복사

s3 버킷에 일부 파일이 있습니다.

aws s3 ls s3://bucketname/

file-111-100x100.jpg
file-112-1400x1400.jpg
file-123-250x250.jpg
file-231-1400x1400.jpg
file-222-700x700.jpg
file-333-100x100.jpg
file-131-1400x1400.jpg
file-321-250x250.jpg
file-232-480x480.jpg
file-113-1400x1400.jpg
file-331-100x100.jpg

aws 명령줄을 통해 1400*1400 텍스트가 있는 파일만 복사하는 방법

file-112-1400x1400.jpg
file-231-1400x1400.jpg
file-131-1400x1400.jpg
file-113-1400x1400.jpg

제가 이 일을 할 수 있도록 도와주세요.

감사합니다.

답변1

awscli에 이 작업을 수행하는 방법이 내장되어 있는지 확실하지 않지만 저는 항상 간단한 bash를 사용하여 이와 같은 작업을 수행했습니다. 예를 들어:

for i in $(aws s3 ls s3://bucketname/ | grep 1400x1400); do aws s3 cp s3://bucketname/$i; done

가장 좋은 방법은 아니지만 꽤 일반적이고 유연합니다.

답변2

가장 좋은 방법은 aws cli --include--exclude필터를 사용하는 것입니다.

aws s3 cp s3://bucketname/ [dest] --exclude "*" --include "*1400x1400*"

[dest]목적지는 어디 입니까(예: s3 경로 또는 로컬 경로)

두 가지 점:

  • 특정 파일만 포함하려면 --exclude "*"지정한 패턴을 포함하기 전에 먼저 해야 합니다. 또한 필터의 순서도 중요합니다.
  • --recursive플래그를 사용하여 이 필터를 재귀적으로 적용할 수도 있습니다.

참조:https://docs.aws.amazon.com/cli/latest/reference/s3/index.html#use-of-exclude-and-include-filters 추가 정보 aws s3 cp:https://docs.aws.amazon.com/cli/latest/reference/s3/cp.html

관련 정보