
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