μλ
νμΈμ,
μ°λ¦¬λ μ΅κ·Όμ μΆκ°λκ±°λ μ
λ°μ΄νΈλ κ°μ²΄λ₯Ό μ°ΎκΈ° μν΄ μμ²(μμλ§κΉμ§ μ¦κ°ν μ μμ)μ κ°μ²΄μ ν΄λ/μ λμ¬κ° μλ λ²ν·μ κ²μν μ μκΈ°λ₯Ό λ°λλλ€. μ 체 λ²ν·μμ aws s3 lsλ₯Ό ν루μ μ¬λ¬ λ² μ€νν λ€μ λͺ©λ‘μ μ λ ¬νλ κ²μ λΉν¨μ¨μ μ
λλ€. μμ λ μκ° <, >, = νΉμ νμμ€ν¬νκ° μλ κ°μ²΄ λͺ©λ‘μ λ¨μν μμ²νλ λ°©λ²μ΄ μμ΅λκΉ?
λν aws s3 ls μμ²μ λν΄ ν λ²λ§ μ²κ΅¬λ©λκΉ, μλλ©΄ μμ²μ μν΄ λ°νλ κ° κ°μ²΄μ λν΄ ν λ² μ²κ΅¬λ©λκΉ?
githubμ μ²μ μ¬μ©νλ μ¬λμκ² μ€μ μ½λλ₯Ό μ 곡ν λ§νΌ μΆ©λΆν μκ³ μΆμμ΅λλ€. λμμ μ£Όμ μ κ°μ¬ν©λλ€.
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 νν°λ μ΄λ»μ΅λκΉ?
λ μ§=$(λ μ§ +%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>
].{ν€: ν€}"
κ°μ₯ μ μ©ν λκΈ
@jwieder μ΄κ²μ μ¬μ©μκ° s3μ λν λͺ©λ‘ νΈμΆ μλ₯Ό μ€μ΄λ λ° λμμ΄ λμ§ μμ΅λλ€. λ§€μΌ ~1000κ°μ λ΄μ€ κΈ°μ¬λ₯Ό μλμ΄μ μ μ₯νλ€κ³ κ°μ ν΄ λ³΄κ² μ΅λλ€. κ·Έλ° λ€μ ν΄λΌμ΄μΈνΈ μΈ‘μμλ κΈ°λ³Έμ μΌλ‘ μ§λ 3μΌ λμμ κΈ°μ¬λ₯Ό λ°κΈ°λ₯Ό μν©λλ€(λͺ μμ μΌλ‘ μμ²ν κ²½μ°μλ§). μλ₯Ό λ€μ΄ 100kμ κ°μ΄ μκ°μ΄ μμλ μ΄νλ‘ λͺ¨λ κΈ°μ¬μ λͺ©λ‘μ κ°μ ΈμμΌ νλ©΄ μκ°μ΄ κ±Έλ¦¬κ³ λ€νΈμν¬ λΉμ©μ΄ λ°μν©λλ€(λ¨μΌ λͺ©λ‘ νΈμΆμ΄ μ΅λ 1000κ° νλͺ©λ§ λ°ννκΈ° λλ¬Έ). "3μΌ μ μ μμ±/μμ λ νλͺ© λͺ©λ‘μ μ£ΌμΈμ"λΌκ³ λ§ν μ μλ€λ©΄ ν¨μ¬ μ’μ κ²μ λλ€.