Aws-cli: aws s3 ls - μˆ˜μ • λ‚ μ§œλ‘œ νŒŒμΌμ„ μ°ΎμœΌμ‹œκ² μŠ΅λ‹ˆκΉŒ?

에 λ§Œλ“  2015λ…„ 01μ›” 21일  Β·  87μ½”λ©˜νŠΈ  Β·  좜처: aws/aws-cli

μ•ˆλ…•ν•˜μ„Έμš”,
μš°λ¦¬λŠ” μ΅œκ·Όμ— μΆ”κ°€λ˜κ±°λ‚˜ μ—…λ°μ΄νŠΈλœ 객체λ₯Ό μ°ΎκΈ° μœ„ν•΄ 수천(μˆ˜μ‹­λ§ŒκΉŒμ§€ 증가할 수 있음)의 객체와 폴더/접두사가 μžˆλŠ” 버킷을 검색할 수 있기λ₯Ό λ°”λžλ‹ˆλ‹€. 전체 λ²„ν‚·μ—μ„œ aws s3 lsλ₯Ό ν•˜λ£¨μ— μ—¬λŸ¬ 번 μ‹€ν–‰ν•œ λ‹€μŒ λͺ©λ‘μ„ μ •λ ¬ν•˜λŠ” 것은 λΉ„νš¨μœ¨μ μž…λ‹ˆλ‹€. μˆ˜μ •λœ μ‹œκ°„ <, >, = νŠΉμ • νƒ€μž„μŠ€νƒ¬ν”„κ°€ μžˆλŠ” 객체 λͺ©λ‘μ„ λ‹¨μˆœνžˆ μš”μ²­ν•˜λŠ” 방법이 μžˆμŠ΅λ‹ˆκΉŒ?

λ˜ν•œ aws s3 ls μš”μ²­μ— λŒ€ν•΄ ν•œ 번만 μ²­κ΅¬λ©λ‹ˆκΉŒ, μ•„λ‹ˆλ©΄ μš”μ²­μ— μ˜ν•΄ λ°˜ν™˜λœ 각 객체에 λŒ€ν•΄ ν•œ 번 μ²­κ΅¬λ©λ‹ˆκΉŒ?

github을 처음 μ‚¬μš©ν•˜λŠ” μ‚¬λžŒμ—κ²Œ μ‹€μ œ μ½”λ“œλ₯Ό μ œκ³΅ν•  만큼 μΆ©λΆ„νžˆ μ•Œκ³  μ‹Άμ—ˆμŠ΅λ‹ˆλ‹€. 도움을 μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€.

guidance

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

@jwieder 이것은 μ‚¬μš©μžκ°€ s3에 λŒ€ν•œ λͺ©λ‘ 호좜 수λ₯Ό μ€„μ΄λŠ” 데 도움이 λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 맀일 ~1000개의 λ‰΄μŠ€ 기사λ₯Ό 양동이에 μ €μž₯ν•œλ‹€κ³  κ°€μ •ν•΄ λ³΄κ² μŠ΅λ‹ˆλ‹€. 그런 λ‹€μŒ ν΄λΌμ΄μ–ΈνŠΈ μΈ‘μ—μ„œλŠ” 기본적으둜 μ§€λ‚œ 3일 λ™μ•ˆμ˜ 기사λ₯Ό λ°›κΈ°λ₯Ό μ›ν•©λ‹ˆλ‹€(λͺ…μ‹œμ μœΌλ‘œ μš”μ²­ν•œ κ²½μš°μ—λ§Œ). 예λ₯Ό λ“€μ–΄ 100k와 같이 μ‹œκ°„μ΄ μ‹œμž‘λœ μ΄ν›„λ‘œ λͺ¨λ“  κΈ°μ‚¬μ˜ λͺ©λ‘μ„ 가져와야 ν•˜λ©΄ μ‹œκ°„μ΄ 걸리고 λ„€νŠΈμ›Œν¬ λΉ„μš©μ΄ λ°œμƒν•©λ‹ˆλ‹€(단일 λͺ©λ‘ 호좜이 μ΅œλŒ€ 1000개 ν•­λͺ©λ§Œ λ°˜ν™˜ν•˜κΈ° λ•Œλ¬Έ). "3일 전에 생성/μˆ˜μ •λœ ν•­λͺ© λͺ©λ‘μ„ μ£Όμ„Έμš”"라고 말할 수 μžˆλ‹€λ©΄ 훨씬 쒋을 κ²ƒμž…λ‹ˆλ‹€.

λͺ¨λ“  87 λŒ“κΈ€

S3 APIλŠ” 이λ₯Ό μ§€μ›ν•˜μ§€ μ•ŠμœΌλ―€λ‘œ S3λ₯Ό μ‚¬μš©ν•˜μ—¬ 이λ₯Ό μˆ˜ν–‰ν•˜λŠ” μœ μΌν•œ 방법은 ν΄λΌμ΄μ–ΈνŠΈ μΈ‘ 정렬을 μˆ˜ν–‰ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

S3 가격 μ±…μ • 에 κ΄€ν•΄μ„œλŠ” ν•œ λ²ˆμ— 1000개의 객체λ₯Ό λ°˜ν™˜ν•˜λŠ” ListObjects μš”μ²­μ„ μ‚¬μš©ν•©λ‹ˆλ‹€. λ”°λΌμ„œ aws s3 ls μ‚¬μš©ν•  λ•Œ 1000개 κ°œμ²΄λ‹Ή LIST μš”μ²­μ— λŒ€ν•΄ μš”κΈˆμ΄ λΆ€κ³Όλ©λ‹ˆλ‹€.

또 λ‹€λ₯Έ λŒ€μ•ˆμ€ dynamodb와 같은 보쑰 인덱슀λ₯Ό S3 외뢀에 μ €μž₯ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. λ‹€λ₯Έ 질문이 있으면 μ•Œλ €μ£Όμ„Έμš”.

κ°μ‚¬ν•©λ‹ˆλ‹€

이 κΈ°λŠ₯은 aw-cli에 μ—†λŠ” κ²ƒμ²˜λŸΌ λ³΄μ΄μ§€λ§Œ bashμ—μ„œ μŠ€ν¬λ¦½νŒ…ν•˜λŠ” 것은 맀우 μ‰½μŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄:

#!/bin/bash
DATE=$(date +%Y-%m-%d)
aws s3 ls s3://bucket.example.com/somefolder/ | grep ${DATE}

@jwieder 이것은 μ‚¬μš©μžκ°€ s3에 λŒ€ν•œ λͺ©λ‘ 호좜 수λ₯Ό μ€„μ΄λŠ” 데 도움이 λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 맀일 ~1000개의 λ‰΄μŠ€ 기사λ₯Ό 양동이에 μ €μž₯ν•œλ‹€κ³  κ°€μ •ν•΄ λ³΄κ² μŠ΅λ‹ˆλ‹€. 그런 λ‹€μŒ ν΄λΌμ΄μ–ΈνŠΈ μΈ‘μ—μ„œλŠ” 기본적으둜 μ§€λ‚œ 3일 λ™μ•ˆμ˜ 기사λ₯Ό λ°›κΈ°λ₯Ό μ›ν•©λ‹ˆλ‹€(λͺ…μ‹œμ μœΌλ‘œ μš”μ²­ν•œ κ²½μš°μ—λ§Œ). 예λ₯Ό λ“€μ–΄ 100k와 같이 μ‹œκ°„μ΄ μ‹œμž‘λœ μ΄ν›„λ‘œ λͺ¨λ“  κΈ°μ‚¬μ˜ λͺ©λ‘μ„ 가져와야 ν•˜λ©΄ μ‹œκ°„μ΄ 걸리고 λ„€νŠΈμ›Œν¬ λΉ„μš©μ΄ λ°œμƒν•©λ‹ˆλ‹€(단일 λͺ©λ‘ 호좜이 μ΅œλŒ€ 1000개 ν•­λͺ©λ§Œ λ°˜ν™˜ν•˜κΈ° λ•Œλ¬Έ). "3일 전에 생성/μˆ˜μ •λœ ν•­λͺ© λͺ©λ‘μ„ μ£Όμ„Έμš”"라고 말할 수 μžˆλ‹€λ©΄ 훨씬 쒋을 κ²ƒμž…λ‹ˆλ‹€.

μ •ν™•νžˆ!

2016λ…„ 1μ›” 17일 μΌμš”μΌ μ˜€ν›„ 11μ‹œ 53λΆ„, PuchatekwSzortach <
[email protected]>은 λ‹€μŒκ³Ό 같이 μΌμŠ΅λ‹ˆλ‹€.

@jwieder https://github.com/jwieder 이것은 μ‚¬μš©μž κ°μ†Œμ— λ„μ›€μ΄λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€
s3에 λŒ€ν•œ λͺ©λ‘ 호좜 수. 맀일 ~1000개의 λ‰΄μŠ€λ₯Ό μ €μž₯ν•œλ‹€κ³  κ°€μ •ν•΄ λ΄…μ‹œλ‹€.
양동이에 기사. 그런 λ‹€μŒ ν΄λΌμ΄μ–ΈνŠΈ μΈ‘μ—μ„œ λ§ˆμ§€λ§‰ 3에 λŒ€ν•œ 기사λ₯Ό μ›ν•©λ‹ˆλ‹€.
기본적으둜 일(λͺ…μ‹œμ μœΌλ‘œ μš”μ²­ν•œ κ²½μš°μ—λ§Œ). κ°€μ Έμ˜€λŠ” 데
μ‹œκ°„μ΄ μ‹œμž‘λœ μ΄ν›„μ˜ λͺ¨λ“  기사 λͺ©λ‘(예: 100k)μ—λŠ” μ‹œκ°„μ΄ κ±Έλ¦½λ‹ˆλ‹€.
λ„€νŠΈμ›Œν¬ λΉ„μš©μ΄ λ°œμƒν•©λ‹ˆλ‹€(단일 λͺ©λ‘ ν˜ΈμΆœμ€
1000개 ν•­λͺ©κΉŒμ§€). "λ‚˜μ—κ²Œ λͺ©λ‘μ„ 쀘.
3일 전에 생성/μˆ˜μ •λœ ν•­λͺ©".

β€”
이 이메일에 직접 λ‹΅μž₯ν•˜κ±°λ‚˜ GitHubμ—μ„œ ν™•μΈν•˜μ„Έμš”.
https://github.com/aws/aws-cli/issues/1104#issuecomment -172425517.

@PuchatekwSzortach @ChrisSLT λ„€ 말이 λ§žμ•„μš”, ν˜•νŽΈ μ—†λŠ” 닡변을 ν•΄μ„œ μ£„μ†‘ν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ μ’…λ₯˜μ˜ κΈ°λŠ₯이 aws-cliμ—μ„œ 맀우 μœ μš©ν•  κ²ƒμ΄λΌλŠ” 데 λ™μ˜ν•©λ‹ˆλ‹€. 이 κΈ°λ³Έ κΈ°λŠ₯을 μ œμ™Έν•˜κ³  파일 λͺ©λ‘μ— λŒ€ν•œ 청ꡬλ₯Ό κ²°ν•©ν•˜λŠ” 것은 맀우 μ˜μ‹¬μŠ€λŸ½μŠ΅λ‹ˆλ‹€. AWSκ°€ νŽ˜λ‹ˆ 핀칭을 μ€‘μ§€ν•˜κ³  파일 속성별 λͺ©λ‘μ„ λ„μž…ν•  λ•ŒκΉŒμ§€ 이 μŠ€λ ˆλ“œμ™€ 첫 번째 응닡과 더 관련이 μžˆλŠ” 또 λ‹€λ₯Έ 아이디어가 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ λ°©μ‹μœΌλ‘œ 좔적해야 ν•˜λŠ” 파일의 경우 파일 이름은 νƒ€μž„μŠ€νƒ¬ν”„λ‘œ μ§€μ •λ©λ‹ˆλ‹€. . 파일 λͺ©λ‘μ€ 둜컬 ν…μŠ€νŠΈ νŒŒμΌμ— μ €μž₯λ©λ‹ˆλ‹€(λ˜λŠ” κ±±μ •ν•  파일이 μ—„μ²­λ‚˜κ²Œ λ§Žμ€ 경우 dbκ°€ 될 수 있음). λ‚ μ§œ 검색은 파일 μ—΄κΈ°λ₯Ό ν¬ν•¨ν•˜λ©° 였늘 λ‚ μ§œμ™€ μΌμΉ˜ν•˜λŠ” 파일 이름을 μ°ΎλŠ” 것은 λ‹€μŒκ³Ό 같을 수 μžˆμŠ΅λ‹ˆλ‹€.

μ½λŠ” λ™μ•ˆ -r fileName
~ν•˜λ‹€
if [ "$fileName" == "$TODAY" ]; κ·Έ λ‹€μŒμ—
aws s3 동기화 $BUCKETURL /some/local/directory --exclude "*" --include "$fileName"
파이
μ™„λ£Œ < "$FILE"

μ—¬κΈ°μ„œ $FILE은 둜컬 파일 이름 인덱슀이고 $TODAYλŠ” κ²€μƒ‰ν•˜λŠ” λ‚ μ§œμž…λ‹ˆλ‹€. 이 λ£¨ν”„μ˜ 쑰건을 λ³€κ²½ν•΄μ•Ό ν•˜μ§€λ§Œ 이것이 아이디어λ₯Ό μ œκ³΅ν•  수 있기λ₯Ό λ°”λžλ‹ˆλ‹€.

μ΄λ ‡κ²Œ ν•˜λ©΄ 버킷에 μžˆλŠ” νŒŒμΌμ„ λ‚˜μ—΄ν•˜λŠ” 것과 κ΄€λ ¨λœ μš”κΈˆμ΄ λ©΄μ œλ©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 둜컬 파일 λͺ©λ‘μ— λŒ€ν•œ μ•‘μ„ΈμŠ€ κΆŒν•œμ΄ μžˆλŠ”μ§€ 검색을 μˆ˜ν–‰ν•˜λŠ” ν΄λΌμ΄μ–ΈνŠΈμ— 따라 λ‹¬λΌμ§‘λ‹ˆλ‹€. μ΄λŸ¬ν•œ μ ‘κ·Ό 방식을 μ‹€ν–‰ λΆˆκ°€λŠ₯ν•˜κ²Œ λ§Œλ“€ 수 μžˆλŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜/μ‹œμŠ€ν…œ μ•„ν‚€ν…μ²˜μ— 따라 λ‹€λ¦…λ‹ˆλ‹€. μ–΄μ¨Œλ“ , 이것이 도움이 되기λ₯Ό 바라며 μ΄μ „μ˜ derpy 닡변에 λŒ€ν•΄ λ‹€μ‹œ μ‚¬κ³Όλ“œλ¦½λ‹ˆλ‹€.

λ™μ˜ν•˜κ³  κ°μ‚¬ν•©λ‹ˆλ‹€

2016λ…„ 1μ›” 19일 ν™”μš”μΌ μ˜€μ „ 10μ‹œ, Josh Wieder [email protected]
썼닀:

@PuchatekwSzortach https://github.com/PuchatekwSzortach @ChrisSLT
https://github.com/ChrisSLT λ„€ 말이 λ§žμ•„μš”, ν˜•νŽΈμ—†λŠ” 닡변을 ν•΄μ„œ μ£„μ†‘ν•©λ‹ˆλ‹€. 그리고
μ΄λŸ¬ν•œ μ’…λ₯˜μ˜ κΈ°λŠ₯이 aws-cliμ—μ„œ 맀우 μœ μš©ν•  κ²ƒμ΄λΌλŠ” 데 λ™μ˜ν•©λ‹ˆλ‹€. NS
이 κΈ°λ³Έ κΈ°λŠ₯을 μ œμ™Έν•˜κ³  파일 λͺ©λ‘μ— λŒ€ν•œ 청ꡬ μ‘°ν•©
맀우 μ˜μ‹¬μŠ€λŸ½μŠ΅λ‹ˆλ‹€. AWSκ°€ νŽ˜λ‹ˆ 핀칭을 μ€‘λ‹¨ν•˜κ³  상μž₯을 λ„μž…ν•  λ•ŒκΉŒμ§€
파일 속성, 여기에 더 관련성이 높은 또 λ‹€λ₯Έ 아이디어가 μžˆμŠ΅λ‹ˆλ‹€.
이 μŠ€λ ˆλ“œμ— λ‹€μŒ λ‚΄ 첫 번째 λ‹΅μž₯: 이 ν•­λͺ©μ—μ„œ 좔적해야 ν•˜λŠ” 파일의 경우
λ°©μ‹μœΌλ‘œ 파일 이름은 νƒ€μž„μŠ€νƒ¬ν”„λ‘œ μ§€μ •λ©λ‹ˆλ‹€. 파일 λͺ©λ‘μ€ λ‘œμ»¬μ— μ €μž₯λ©λ‹ˆλ‹€.
ν…μŠ€νŠΈ 파일(λ˜λŠ” κ±±μ •ν•  파일이 μ—„μ²­λ‚˜κ²Œ λ§Žμ€ 경우 dbκ°€ 될 수 있음).
λ‚ μ§œ κ²€μƒ‰μ—λŠ” 파일 μ—΄κΈ°, 파일 이름 μ°ΎκΈ°κ°€ ν¬ν•¨λ©λ‹ˆλ‹€.
였늘 λ‚ μ§œμ™€ μΌμΉ˜ν•˜λŠ” ν•­λͺ©μ€ λ‹€μŒκ³Ό 같을 수 μžˆμŠ΅λ‹ˆλ‹€.

μ½λŠ” λ™μ•ˆ -r fileName
~ν•˜λ‹€
if [ "$fileName" == "$TODAY" ]; κ·Έ λ‹€μŒμ—
aws s3 동기화 $BUCKETURL /some/local/directory --exclude "*" --include
"$νŒŒμΌμ΄λ¦„"
파이
μ™„λ£Œ < "$FILE"

μ—¬κΈ°μ„œ $FILE은 둜컬 파일 이름 인덱슀이고 $TODAYλŠ” ν˜„μž¬ λ‚ μ§œμž…λ‹ˆλ‹€.
μ°Ύκ³  μžˆμŠ΅λ‹ˆλ‹€. 이 λ£¨ν”„μ˜ 쑰건을 λ³€κ²½ν•΄μ•Ό ν•˜μ§€λ§Œ
이것이 λ‹Ήμ‹ μ—κ²Œ 아이디어λ₯Ό 쀄 수 있기λ₯Ό λ°”λžλ‹ˆλ‹€.

이런 μ‹μœΌλ‘œ 일을 ν•˜λ©΄ λ¦¬μŠ€νŒ…κ³Ό κ΄€λ ¨λœ λͺ¨λ“  λΉ„μš©μ΄ λ©΄μ œλ©λ‹ˆλ‹€.
λ²„ν‚·μ˜ 파일 κ·ΈλŸ¬λ‚˜ 그것은 λ˜ν•œ 당신이 μˆ˜ν–‰ν•˜λŠ” ν΄λΌμ΄μ–ΈνŠΈμ— 달렀 μžˆμŠ΅λ‹ˆλ‹€
둜컬 파일 λͺ©λ‘μ— λŒ€ν•œ μ•‘μ„ΈμŠ€ κΆŒν•œ 검색 ... μ‚¬μš©μžμ— 따라
μ΄λŸ¬ν•œ μ ‘κ·Ό 방식을 λ§Œλ“€ 수 μžˆλŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜/μ‹œμŠ€ν…œ μ•„ν‚€ν…μ²˜
λΆˆκ°€λŠ₯ν•˜λ‹€. μ–΄μ¨Œλ“  이것이 λ„μ›€μ΄λ˜κΈ°λ₯Ό 바라며 이전에 λ‹€μ‹œ μ‚¬κ³Όλ“œλ¦½λ‹ˆλ‹€.
더피 λŒ€λ‹΅.

β€”
이 이메일에 직접 λ‹΅μž₯ν•˜κ±°λ‚˜ GitHubμ—μ„œ ν™•μΈν•˜μ„Έμš”.
https://github.com/aws/aws-cli/issues/1104#issuecomment -172878454.

s3api 및 --query κΈ°λŠ₯을 μ‚¬μš©ν•˜μ—¬ 이λ₯Ό μˆ˜ν–‰ν•˜λŠ” 방법이 μžˆμŠ΅λ‹ˆλ‹€. 이것은 OSXμ—μ„œ ν…ŒμŠ€νŠΈλ˜μ—ˆμŠ΅λ‹ˆλ‹€.
aws s3api λͺ©λ‘ 개체 --bucket "버킷 이름" --query 'λ‚΄μš©[?LastModified>= 2016-05-20 ][].{ν‚€: ν‚€}'
그런 λ‹€μŒ jq λ˜λŠ” grep을 μ‚¬μš©ν•˜μ—¬ ν•„ν„°λ§ν•˜μ—¬ λ‹€λ₯Έ s3api κΈ°λŠ₯으둜 μ²˜λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

νŽΈμ§‘: μ™œ ν‘œμ‹œλ˜μ§€ μ•ŠλŠ”μ§€ ν™•μ‹€ν•˜μ§€ μ•Šμ§€λ§Œ μΏΌλ¦¬ν•˜λŠ” λ‚ μ§œλ₯Ό λ‘˜λŸ¬μ‹ΈκΈ° μœ„ν•΄ 백틱을 μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.

맀일 폴더λ₯Ό λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆκΉŒ? 그러면 였늘 νŒŒμΌμ—λ§Œ μ•‘μ„ΈμŠ€ν•˜κ±°λ‚˜ μ΅œλŒ€ μ–΄μ œ 폴더에 μ•‘μ„ΈμŠ€ν•˜μ—¬ μ΅œμ‹  νŒŒμΌμ„ 얻을 수 μžˆμŠ΅λ‹ˆλ‹€.

예. λ‹¨μˆœνžˆ 킀에 λ‚ μ§œ 접두사λ₯Ό μ‚¬μš©ν•˜λŠ” 것이 더 μ‰¬μšΈ 수 μžˆμ§€λ§Œ(--bucket μ˜΅μ…˜μ„ μ‚¬μš©ν•˜μ—¬ 버킷 이름/폴더 이름 쑰합을 쿼리할 수 μ—†μŒ). λ‚ μ§œ 접두사λ₯Ό μ‚¬μš©ν•˜λ©΄ cliμ—μ„œ --prefix ν”Œλž˜κ·Έλ₯Ό μ‚¬μš©ν•˜κ³  쿼리 속도λ₯Ό 높일 수 μžˆμŠ΅λ‹ˆλ‹€. AWSμ—μ„œλŠ” 응닡 μ‹œκ°„μ„ 늘리기 μœ„ν•΄ ν‚€ μ΄λ¦„μ˜ μ‹œμž‘ 뢀뢄에 μˆ«μžλ‚˜ ν•΄μ‹œλ₯Ό μ‚¬μš©ν•  것을 ꢌμž₯ν•©λ‹ˆλ‹€.

@willstruebing , κ·€ν•˜μ˜ μ†”λ£¨μ…˜μ€ μ—¬μ „νžˆ ​​S3 API 호좜 수, μ„œλ²„ μΈ‘ 쿼리 λ³΅μž‘μ„± λ˜λŠ” μœ μ„ μ„ 톡해 μ „μ†‘λ˜λŠ” 데이터 양을 쀄이지 μ•ŠμŠ΅λ‹ˆλ‹€. --query λ§€κ°œλ³€μˆ˜λŠ” ν΄λΌμ΄μ–ΈνŠΈ μΈ‘ jmespath ν•„ν„°λ§λ§Œ μˆ˜ν–‰ν•©λ‹ˆλ‹€.

@kislyuk νš¨μœ¨μ„± λ¬Έμ œμ— λŒ€ν•œ 닡이 μ•„λ‹ˆλΌλŠ” 점에 μ „μ μœΌλ‘œ λ™μ˜ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ λ‚΄ μ˜λ„λŠ” λ‹€μŒκ³Ό 같은 ꡬ체적인 μ§ˆλ¬Έμ— λ‹΅ν•˜λŠ” κ²ƒμ΄μ—ˆμŠ΅λ‹ˆλ‹€.

Is there a way to simply request a list of objects with a modified time <, >, = a certain timestamp?

κ·Έ 기본적인 μ§ˆλ¬Έμ€ λ‚΄κ°€ 이 μŠ€λ ˆλ“œμ—μ„œ μ–΄λ–»κ²Œ λλ‚¬λŠ”μ§€μ— λŒ€ν•œ κ²ƒμ΄λ―€λ‘œ 이에 λŒ€ν•œ 닡변을 ν¬ν•¨ν•˜λŠ” 것이 합리적이라고 μƒκ°ν–ˆμŠ΅λ‹ˆλ‹€. 문제의 λ ˆμ΄λΈ”μ€ "aws s3 ls - μˆ˜μ •λœ λ‚ μ§œλ‘œ νŒŒμΌμ„ μ°ΎμœΌμ‹œκ² μŠ΅λ‹ˆκΉŒ?"μž…λ‹ˆλ‹€.

λ‚˜λŠ” λ‚˜ μžμ‹ μ΄ μ—†κ³  μ—¬μ „νžˆ κΆκΈˆν•˜κΈ° λ•Œλ¬Έμ— 질문의 νš¨μœ¨μ„± 뢀뢄에 λŒ€ν•œ λˆ„κ΅°κ°€μ˜ 아이디어λ₯Ό λ“£κ³  μ‹ΆμŠ΅λ‹ˆλ‹€.

#for i in s3cmd ls | awk {'print $3'} ; do aws s3 ls $i --recursive ; μ™„λ£Œ >> s3-full.out

AWS λ°˜ν™˜ 파일의 기본값은 λ¬΄μ—‡μž…λ‹ˆκΉŒ? μ•ŒνŒŒλ²³μˆœμœΌλ‘œ λ˜λŠ” κ°€μž₯ μ΅œκ·Όμ— μˆ˜μ •λœ μˆœμ„œλ‘œ λ°˜ν™˜ν•©λ‹ˆκΉŒ, μ•„λ‹ˆλ©΄ 1000개 파일 μ΄λ¦„μ˜ 첫 번째 배치λ₯Ό μš”μ²­ν•  λ•Œ μ‚¬μš©ν•˜λŠ” 기쀀이 λ¬΄μ—‡μž…λ‹ˆκΉŒ?

νŒŒμΌμ„ μš”μ²­ν•  λ•Œ μ‚¬μš©ν•  수 μžˆλŠ” μΌμ’…μ˜ ν•„ν„°(λ‚ μ§œ, 이름 λ“±μœΌλ‘œ μ •λ ¬)κ°€ μžˆμ–΄μ•Ό ν•œλ‹€λŠ” 데 λ™μ˜ν•©λ‹ˆλ‹€. ν™•μ‹€νžˆ λˆ„λ½λœ κΈ°λŠ₯μž…λ‹ˆλ‹€. :(

λ‚˜λŠ” 이 필터링이 μ„œλ²„ 츑이어야 ν•˜κ³  기본적인 μš”κ΅¬ μ‚¬ν•­μ΄λΌλŠ” 데 λ™μ˜ν•©λ‹ˆλ‹€.

μ„œλ²„ μΈ‘ 쿼리/ν•„ν„°λ§μ˜ 경우 +1

μ„œλ²„ μΈ‘ ν•„ν„°λ§μ˜ 경우 +1

μ—¬μ „νžˆ 맀우 ν•„μš”ν•©λ‹ˆλ‹€. +1

@chescales 및 λ‚˜λ¨Έμ§€μ— λ™μ˜, μ„œλ²„ μΈ‘ 필터링에 +1

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

μ–΄λ–»κ²Œ 이것이 이미 κΈ°λŠ₯이 μ•„λ‹Œκ°€?

+100000

+1999λ…„

+1

+1

+1

+1

+1

+1

+1

+1

+65535

@willstruebing 의 의견이 μ €μ—κ²Œ

aws s3api list-objects --bucket "mybucket" --prefix "some/prefix" --query "Contents[?LastModified>=`2018-08-22`].{Key: Key}"

oh Nevermind - 이 λͺ…λ Ήμ˜ λ„€νŠΈμ›Œν¬ νŠΈλž˜ν”½μ„ λ³Έ ν›„ λͺ¨λ“  ν‚€κ°€ μ—¬μ „νžˆ s3μ—μ„œ λ‹€μš΄λ‘œλ“œλ˜κ³  aws cliκ°€ ν΄λΌμ΄μ–ΈνŠΈ μΈ‘μ—μ„œ 필터링을 μˆ˜ν–‰ν•˜κ³  μžˆμŒμ„ μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€!

+1

+1

+1

+1

--exclude 및 --include ν•„ν„°λŠ” μ–΄λ–»μŠ΅λ‹ˆκΉŒ?

!/bin/bash

λ‚ μ§œ=$(λ‚ μ§œ +%Y-%m-%d)
aws s3 ls s3://bucket.example.com/somefolder/ --exclude " " --include " ${DATE}*"

+1

+1

+1백만

+1

+∞

+∞+1

+1

+1

+1

++

+1

+1

+1

+1 :( :(

λ‚˜λŠ” 그것이 AWS의 가격 λͺ¨λΈμ˜ 일뢀라고 μƒκ°ν•©λ‹ˆλ‹€. 맀우 μ €λ ΄ν•œ μŠ€ν† λ¦¬μ§€μ΄μ§€λ§Œ μ•‘μ„ΈμŠ€ λΉ„μš©μ„ μ§€λΆˆν•΄μ•Ό ν•©λ‹ˆλ‹€. 큰 νŒŒμΌμ— μ ν•©ν•˜μ§€λ§Œ 수백만 개의 μž‘μ€ νŒŒμΌμ„ 쿼리/κ΄€λ¦¬ν•˜λ €λŠ” κ²½μš°μ—λŠ” μ‹€νŒ¨ν•©λ‹ˆλ‹€.

+1

이것이 그듀이 μ•„ν…Œλ‚˜λ₯Ό λ§Œλ“  이유라고 μƒκ°ν•©λ‹ˆλ‹€. μ’…μ†Œλ¦¬μ™€ νœ˜νŒŒλžŒμ„ μΆ”κ°€ν•˜λ©΄μ„œ μ²­κ΅¬ν•˜λŠ” 또 λ‹€λ₯Έ 방법은 λ¬΄μ—‡μž…λ‹ˆκΉŒ?

+1

+1

+1

예λ₯Ό λ“€μ–΄ 두 λ‚ μ§œ 사이에 μˆ˜μ •λœ s3 버킷 객체λ₯Ό λ‚˜μ—΄ν•΄μ•Ό ν•©λ‹ˆλ‹€. 2019-06-08 ~ 2019-06-11

아무 생각 μ—†μ–΄?

aws s3api list-objects --bucket "BUCKET" --prefix "OPTIONAL" --query "Contents[?LastModified>='2019-06-08'][].{Key: Key,LastModified: LastModified}" 그런 λ‹€μŒ JQ λ˜λŠ” μ„ ν˜Έν•˜λŠ” 도ꡬλ₯Ό μ‚¬μš©ν•˜μ—¬ 2019-06-11 이후 필터링

κ·Έλ ‡λ‹€κ³  API 호좜이 μ œκ±°λ˜λŠ” 것은 μ•„λ‹™λ‹ˆλ‹€. ν•΄λ‹Ή μΏΌλ¦¬λŠ” ν΄λΌμ΄μ–ΈνŠΈ μΈ‘μž…λ‹ˆλ‹€.

2019λ…„ 6μ›” 11일 ν™”, μ˜€ν›„ 2:07 willstrewing [email protected]
썼닀:

aws s3api list-objects --bucket "BUCKET" --prefix "OPTIONAL" --query
"λ‚΄μš©[?LastModified>='2019-06-08'][].{Key: Key, LastModified:
LastModified}" 그런 λ‹€μŒ JQ λ˜λŠ” μ„ ν˜Έν•˜λŠ” 도ꡬλ₯Ό μ‚¬μš©ν•˜μ—¬
2019-06-11

β€”
당신이 λŒ“κΈ€μ„ λ‹¬μ•˜κΈ° λ•Œλ¬Έμ— 이것을 λ°›λŠ” κ²ƒμž…λ‹ˆλ‹€.
이 이메일에 직접 λ‹΅μž₯ν•˜κ³  GitHubμ—μ„œ 확인
https://github.com/aws/aws-cli/issues/1104?email_source=notifications&email_token=AABLGMW5AFAU5BUNM7FEMZ3PZ7SV3A5CNFSM4A2VNZ2KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63
λ˜λŠ” μŠ€λ ˆλ“œ μŒμ†Œκ±°
https://github.com/notifications/unsubscribe-auth/AABLGMVTIZDPPIEUK2CZR6TPZ7SV3ANCNFSM4A2VNZ2A
.

@dmead μ „μ μœΌλ‘œ λ™μ˜ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μ„œλ²„ μΈ‘ 필터링을 μˆ˜ν–‰ν•˜λŠ” κΈ°λŠ₯은 ν˜„μž¬ μ‘΄μž¬ν•˜μ§€ μ•ŠμœΌλ―€λ‘œ(이 λ•Œλ¬Έμ— λ§Žμ€ μ‚¬λžŒλ“€μ΄ 이 νŠΉμ • κ²Œμ‹œλ¬Όμ„ 보게 λ˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€), 이것이 λ‹Ήλ©΄ν•œ μž‘μ—…μ„ μ™„λ£Œν•˜κΈ° μœ„ν•΄ μ œκ°€ μ•„λŠ” μœ μΌν•œ ν•΄κ²° λ°©λ²•μž…λ‹ˆλ‹€. μ„œλ²„ μΈ‘μ—μ„œ μˆ˜ν–‰ν•  수 μžˆλŠ” 방법이 μžˆμŠ΅λ‹ˆκΉŒ μ•„λ‹ˆλ©΄ μ œμ•ˆλœ μ†”λ£¨μ…˜μ— λŒ€ν•œ 관찰일 λΏμž…λ‹ˆκΉŒ? 이λ₯Ό μˆ˜ν–‰ν•˜κ³  API ν˜ΈμΆœμ„ μ€„μ΄λŠ” 방법에 λŒ€ν•œ μ˜κ²¬μ„ λ“£κ³  μ‹ΆμŠ΅λ‹ˆλ‹€.

μ‹œκ°„μ΄ μžˆλ‹€λ©΄ athenaμ—μ„œ 메타데이터λ₯Ό μ„ νƒν•˜λŠ” 방법을 μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€. NS
λ‚˜ μžμ‹ μ—κ²ŒλŠ” κΈ°νšŒκ°€ μ—†μ—ˆμ§€λ§Œ 그것이 κ°€λŠ₯ν•œ ν•΄κ²°μ±…μ²˜λŸΌ λ³΄μ˜€μŠ΅λ‹ˆλ‹€.

2019λ…„ 6μ›” 12일 μˆ˜μš”μΌ μ˜€μ „ 10μ‹œ 28λΆ„ willstrewing [email protected]
썼닀:

@dmead https://github.com/dmead μ „μ μœΌλ‘œ λ™μ˜ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜, κ·Έ
μ„œλ²„ μΈ‘ 필터링을 μˆ˜ν–‰ν•˜λŠ” κΈ°λŠ₯은 ν˜„μž¬ μ‘΄μž¬ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€(제 μƒκ°μ—λŠ”
κ·Έλž˜μ„œ λ§Žμ€ μ‚¬λžŒλ“€μ΄ 이 νŠΉμ • κ²Œμ‹œλ¬Όμ„ 보게 λ©λ‹ˆλ‹€.
λ‚΄κ°€ μ•„λŠ” μœ μΌν•œ ν•΄κ²° 방법은 λ‹Ήλ©΄ν•œ μž‘μ—…μ„ μ™„λ£Œν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. 가지고 μžˆμŠ΅λ‹ˆκΉŒ?
μ„œλ²„ μΈ‘μ—μ„œ μˆ˜ν–‰ν•˜λŠ” 방법 λ˜λŠ” 이것은 μ œμ•ˆλœ 사항에 λŒ€ν•œ 관찰일 λΏμž…λ‹ˆλ‹€.
ν•΄κ²°μ±…? λ‚˜λŠ” 그것을 ν•˜κ³  양을 μ€„μ΄λŠ” 방법에 λŒ€ν•œ μ˜κ²¬μ„ λ“£κ³  μ‹ΆμŠ΅λ‹ˆλ‹€.
API 호좜.

β€”
당신이 μ–ΈκΈ‰λ˜μ—ˆκΈ° λ•Œλ¬Έμ— 이것을 λ°›λŠ” κ²ƒμž…λ‹ˆλ‹€.
이 이메일에 직접 λ‹΅μž₯ν•˜κ³  GitHubμ—μ„œ 확인
https://github.com/aws/aws-cli/issues/1104?email_source=notifications&email_token=AABLGMTQZD6OWVH4KDMSJPLP2EBY7A5CNFSM4A2VNZ2KYY3PNVWWK3TUL52HS4DFVEXG43NDNMXW6
λ˜λŠ” μŠ€λ ˆλ“œ μŒμ†Œκ±°
https://github.com/notifications/unsubscribe-auth/AABLGMRLA5OYSYGEYNPUY5DP2EBY7ANCNFSM4A2VNZ2A
.

+24

λͺ¨λ“  μ‚¬λžŒμ΄ 이것을 μ°¬μ„±ν•˜κ³  AWS CLI둜 μ œμΆœν•˜λŠ” 것은 도움이 λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. AWS CLIλŠ” S3에 κ΅¬μ†λ©λ‹ˆλ‹€. μˆ˜μ •ν•˜λ €λ©΄ λ„κ΅¬μ˜ github λŒ€μ‹  S3 νŒ€μ— νŒŒμΌμ„ μ œμΆœν•˜μ„Έμš”.:P

@mike-bailey μ’‹μŠ΅λ‹ˆλ‹€. μ–΄λ–»κ²Œ ν•΄μ•Ό ν•˜λ‚˜μš”?

저라면 AWS 티켓을 μ œμΆœν•˜μ—¬ μ„œλΉ„μŠ€ νŒ€μ— μ „λ‹¬ν•˜κ² μŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ μ €λŠ” AWSμ—μ„œ μΌν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” 이것에 λŒ€ν•΄ '+1'을 ν•˜λŠ” 것이 λ³€κ²½λ˜μ§€ μ•Šμ„ κ²ƒμ΄λΌλŠ” 것을 μ•Œκ³  μžˆμŠ΅λ‹ˆλ‹€.

s3api 및 --query κΈ°λŠ₯을 μ‚¬μš©ν•˜μ—¬ 이λ₯Ό μˆ˜ν–‰ν•˜λŠ” 방법이 μžˆμŠ΅λ‹ˆλ‹€. 이것은 OSXμ—μ„œ ν…ŒμŠ€νŠΈλ˜μ—ˆμŠ΅λ‹ˆλ‹€.
aws s3api λͺ©λ‘ 개체 --bucket "버킷 이름" --query 'λ‚΄μš©[?LastModified>= 2016-05-20 ][].{ν‚€: ν‚€}'
그런 λ‹€μŒ jq λ˜λŠ” grep을 μ‚¬μš©ν•˜μ—¬ ν•„ν„°λ§ν•˜μ—¬ λ‹€λ₯Έ s3api κΈ°λŠ₯으둜 μ²˜λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

νŽΈμ§‘: μ™œ ν‘œμ‹œλ˜μ§€ μ•ŠλŠ”μ§€ ν™•μ‹€ν•˜μ§€ μ•Šμ§€λ§Œ μΏΌλ¦¬ν•˜λŠ” λ‚ μ§œλ₯Ό λ‘˜λŸ¬μ‹ΈκΈ° μœ„ν•΄ 백틱을 μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.

이 닡변을 μ‹œλ„ν•˜κΈ° 전에 μ΅œμ‹  λ²„μ „μ˜ awscli κ°€ μžˆλŠ”μ§€ ν™•μΈν•˜μ‹­μ‹œμ˜€. λ‚˜λŠ” μ—…κ·Έλ ˆμ΄λ“œν–ˆλ‹€
awscli 1.11.47 -> 1.16.220
그리고 λ‘λ €μš΄ ν΄λΌμ΄μ–ΈνŠΈ μΈ‘ 필터링을 μˆ˜ν–‰ν–ˆμ§€λ§Œ μž‘λ™ν–ˆμŠ΅λ‹ˆλ‹€.
μ„œλ²„ μΈ‘ ν•„ν„°λ§μ˜ 경우 +1μž…λ‹ˆλ‹€.

+1

+1

μŠ€λ ˆλ“œλ₯Ό μ½μœΌμ‹­μ‹œμ˜€. +1은 아무 것도 ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

당신은 이것을 μ‰½κ²Œ ν•  수 μ—†μ§€λ§Œ 이 주석에 λ¬»ν˜€ μžˆλŠ” 것은 λ‹€μŒκ³Ό 같은 νŒμž…λ‹ˆλ‹€.

 aws s3api list-objects --bucket "bucket-name" --query 'Contents[?LastModified>=`2016-05-20`][].{Key: Key}'

이것은 μ—¬μ „νžˆ β€‹β€‹ν΄λΌμ΄μ–ΈνŠΈ 츑이며 λ§Žμ€ μš”μ²­μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ 이전에 μ–ΈκΈ‰ν–ˆλ“―μ΄ ν΄λΌμ΄μ–ΈνŠΈ 츑을 μ²˜λ¦¬ν•©λ‹ˆλ‹€. λ”°λΌμ„œ μ—¬μ „νžˆ 잠재적으둜 호좜둜 버킷을 슬램(slam)ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

필터링은 μ„œλ²„ 츑이어야 ν•˜λ©° 기본적으둜 ν•„μš”ν•˜λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

λ‹€μŒμ€ μƒˆ 파일만 λ‹€μš΄λ‘œλ“œν•˜λ„λ‘ aws s3 syncλ₯Ό μ‚¬μš©ν•˜λŠ” μ˜ˆμž…λ‹ˆλ‹€. 둜그λ₯Ό ν•˜λ‚˜μ˜ 둜그 파일둜 κ²°ν•©ν•˜κ³  νŒŒμΌμ„ μ €μž₯ν•˜κΈ° 전에 주석을 μ œκ±°ν•©λ‹ˆλ‹€. 그런 λ‹€μŒ grep 및 thingsλ₯Ό μ‚¬μš©ν•˜μ—¬ 둜그 데이터λ₯Ό 얻을 수 μžˆμŠ΅λ‹ˆλ‹€. 제 κ²½μš°μ—λŠ” νŠΉμ • νŒŒμΌμ— λŒ€ν•œ 고유 쑰회수λ₯Ό 계산해야 ν–ˆμŠ΅λ‹ˆλ‹€. μ•„λž˜ μ½”λ“œλŠ” https://shapeshed.com/aws-cloudfront-log/ λ§ν¬μ—μ„œ μˆ˜μ •ν•œ κ²ƒμž…λ‹ˆλ‹€. sed λͺ…령은 Macμ—μ„œλ„ μž‘λ™ν•˜λ©° κΈ°μ‚¬μ˜ λ‚΄μš©κ³Ό λ‹€λ¦…λ‹ˆλ‹€. 도움이 λ˜μ—ˆκΈ°λ₯Ό λ°”λžλ‹ˆλ‹€!

aws s3 sync s3://<YOUR_BUCKET> .
cat *.gz > combined.log.gz
gzip -d combined.log.gz
sed -i '' '/^#/ d' combined.log

# counts unique logs for px.gif hits
grep '/px.gif' combined.log | cut -f 1,8 | sort | uniq -c | sort -n -r

# above command will return something like below. The total count followed by the date and the file name.
17 2020-01-02 /px.gif
 9 2020-01-03 /px.gif

λ‚˜λŠ” 였래된 문제λ₯Ό μ•Œκ³  μžˆμ§€λ§Œ 여기에 μš°μ•„ν•œ μ†”λ£¨μ…˜μ„ 남겨 λ‘μ‹­μ‹œμ˜€.

aws s3api list-objects --output=text --query "λ‚΄μš©[?LastModified >= <DATE_YOU_WANT_TO_START> ].{ν‚€: ν‚€}"

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰