*
특정 버킷에서 파일의 하위 집합을 선택하기 위해 AWS CLI에서 사용 하는 데 문제 가 있습니다.
*
이와 같은 경로에 추가 하는 것이 작동하지 않는 것 같습니다.
aws s3 cp s3://data/2016-08* .
답변:
현재 디렉토리에 AWS 버킷에서 여러 파일을 다운로드하려면, 당신은 사용할 수 있습니다 recursive
, exclude
그리고 include
이 같은 플래그 :
aws s3 cp s3://data/ . --recursive --exclude "*" --include "2016-08*"
이러한 필터를 사용하는 방법에 대한 자세한 정보 : http://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters
sync
기본적으로 재귀적인 비슷한 효과를 사용할 수도 있습니다 .aws s3 sync s3://data/ . --exclude "*" --include "2016-08*"
매개 변수의 순서가 중요합니다
제외 및 포함은 특정 순서로 사용해야합니다. 먼저 제외하고 포함해야합니다. 그 반대는 성공하지 못할 것입니다.
aws s3 cp s3://data/ . --recursive --include "2016-08*" --exclude "*"
이 경우 매개 변수의 순서가 일치하므로 실패합니다. 포함은 *로 제외됩니다.
aws s3 cp s3://data/ . --recursive --exclude "*" --include "2016-08*"`
이것은 우리가 모든 것을 제외했지만 나중에 특정 디렉토리를 포함했기 때문에 작동합니다.
--exclude "*"
오타가 아니라는 점을 지적하고 싶습니다 . 추가하지 않으면 포함이 모든 항목과 일치합니다 . 문서에 따라 : 기본적으로 모든 파일이 포함되어 있습니다. 즉, --include 필터 만 제공해도 전송되는 파일은 변경되지 않습니다. --include는 --exclude 필터에서 제외 된 파일 만 다시 포함합니다. 특정 확장자를 가진 파일 만 업로드하려면 먼저 모든 파일을 제외하고 특정 확장자를 가진 파일을 다시 포함해야합니다.