Aws-cli: AWS S3 рд╕рд┐рдВрдХ рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рд┐рдВрдХ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 18 рдЕрдкреНрд░реИрд▓ 2018  ┬╖  44рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: aws/aws-cli

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдИ рд▓рд╛рдЦ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣реИрдВ рдФрд░ S3 рдордЬрд╝рдмреВрддреА рд╕реЗ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рд┐рдВрдХ рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдордиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдРрд╕реА рдХрдИ рдлрд╛рдЗрд▓реЗрдВ рдереАрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд▓рдЧрднрдЧ рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рд╡реЗ рдЕрд▓рдЧ рд╣реИрдВ рд▓реЗрдХрд┐рди рд╕рд┐рдВрдХ рдпрд╛ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВред

рд╕реНрд░реЛрдд рдФрд░ рдЧрдВрддрд╡реНрдп рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рджреЛрдиреЛрдВ рднреА рднрд┐рдиреНрди рд╣реИрдВ рд▓реЗрдХрд┐рди рд╕рдордиреНрд╡рдпрди рдХрднреА рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред S3 рдореЗрдВ рдирд╡реАрдирддрдо рдлрд╝рд╛рдЗрд▓ рд╣реИред

рдХрдорд╛рдВрдб рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ
рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ s3 s3: // рд╕реНрд░реЛрдд / рд╕реНрдерд╛рдиреАрдп-рдлрд╝реЛрд▓реНрдбрд░ --delete

рд╕рд┐рдВрдХ рдирд╣реАрдВ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рдХреА рдПрдХ рд╣реА рддрд╛рд░реАрдЦ рд╣реЛрддреА рд╣реИ рд▓реЗрдХрд┐рди рд╡реЗ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдореЗрдВ рдлреИрд▓реА рд╣реБрдИ рд╣реЛрддреА рд╣реИрдВред

рдХреНрдпрд╛ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдХреЛ рдмрджрд▓рдиреЗ рдФрд░ рд╕рдВрднрд╡рддрдГ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП S3 рдЯрдЪ рдХрдорд╛рдВрдб рд╣реИ?

feature-request s3 s3sync s3syncstrategy

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЯрд┐рдХрдЯ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рдмрдВрдж рдирд╣реАрдВ рд╣реБрдЖ рдерд╛ред рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ, рдпрд╣ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ (рдореЗрд░реЗ рд╕рд╣рд┐рдд) рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдзрд╛рд░рдгрд╛ рдмрдирд╛рддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдлрд┐рд░ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рдЬрдм рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдХреИрд╕реЗ рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВред

  • рдЬрдм рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рдВрдХ рдХреА рдЬрд╛рддреА рд╣реИ рдпрд╛ _to_ s3 рдХреЙрдкреА рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдЙрд╕реЗ рдмрдХреЗрдЯ рдкрд░ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рд╡рд╣ рддрд╛рд░реАрдЦ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдХреА рдЙрд╕реЗ рдХреЙрдкреА рдХреА рдЧрдИ рдереА, рдЬреЛ рдХрд┐ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреА рддрд╛рд░реАрдЦ рд╕реЗ _always_ рдирдИ рд╣реЛрддреА рд╣реИред рдЗрд╕ рддрд░рд╣ s3 рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
  • рдлрд╝рд╛рдЗрд▓реЗрдВ рдХреЗрд╡рд▓ рддрднреА рд╕рдордиреНрд╡рдпрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИрдВ рдЬрдм рдЖрдХрд╛рд░ рдмрджрд▓рддрд╛ рд╣реИ, рдпрд╛ рд▓рдХреНрд╖реНрдп рдкрд░ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рд╕реНрд░реЛрдд рд╕реЗ _older_ рд╣реИред
  • рдЗрд╕рдХрд╛ рдЕрд░реНрде рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЖрдХрд╛рд░ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣рддрд╛ рд╣реИ рдФрд░ рдЙрди рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рддрд┐рдерд┐рдпрд╛рдВ рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдХреЙрдкреА рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рдкреВрд░реНрд╡-рддрд╛рд░реАрдЦ рд╣реЛрддреА рд╣реИрдВ, рддреЛ s3 рд╕рд┐рдВрдХ рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рд╕рд┐рдВрдХ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
  • s3 рд╕реЗ рд▓реЛрдХрд▓ рдореЗрдВ рдХреЙрдкреА рдХрд░рддреЗ рд╕рдордп --exact-timestamps _only_ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЬрд╛рдирдмреВрдЭрдХрд░ рд╕реНрдерд╛рдиреАрдп рдХреЗ рд▓рд┐рдП s3 рдХреЗ рд▓рд┐рдП рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк _never_ рдмрд░рд╛рдмрд░ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рд╕реЗ s3 рдореЗрдВ рд╕рдордиреНрд╡рдпрд┐рдд рдХрд░рддреЗ рд╕рдордп рдЗрд╕реЗ рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд╣реИред
  • рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ s3 рдЕрдкрд▓реЛрдб рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИрд╢ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдЖрдХрд╛рд░ рдФрд░ рдЕрдВрддрд┐рдо рдЕрдкрд▓реЛрдб рддрд┐рдерд┐ рдХреЛ рдЪреЗрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЯрд╛рд▓рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред

рд▓рдмреНрдмреЛрд▓реБрдЖрдм рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд░рд╛рджрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕реЗ рдХрдИ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдпрд╣ рд╡рд╛рдВрдЫрдиреАрдп рдирд╣реАрдВ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ s3 cp --recursive рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ

рд╕рднреА 44 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЗрд╕рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдЖрдк рд╕рдВрднрд╡рддрдГ --exact-timestamps рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрджрд┐ рдЖрдк рдЕрдкрд▓реЛрдб рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрдкрд▓реЛрдб рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдкреБрдирд░реБрддреНрдкрд╛рджрди рдореЗрдВ рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП, рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕рдордиреНрд╡рдпрд┐рдд рдирд╣реАрдВ рд╣реЛ рд░рд╣реА рд╣реИрдВ?

  • рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд╕рдЯреАрдХ рдлрд╝рд╛рдЗрд▓ рдЖрдХрд╛рд░ рдХреНрдпрд╛ рд╣реИ?
  • S3 рдореЗрдВ рд╕рдЯреАрдХ рдлрд╝рд╛рдЗрд▓ рдЖрдХрд╛рд░ рдХреНрдпрд╛ рд╣реИ?
  • рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдЕрдВрддрд┐рдо рд╕рдВрд╢реЛрдзрд┐рдд рд╕рдордп рдХреНрдпрд╛ рд╣реИ?
  • S3 рдореЗрдВ рдЕрдВрддрд┐рдо рд╕рдВрд╢реЛрдзрд┐рдд рд╕рдордп рдХреНрдпрд╛ рд╣реИ?
  • рдХреНрдпрд╛ рд╕реНрдерд╛рдиреАрдп рдлрд╝рд╛рдЗрд▓ рдПрдХ рд╕рд┐рдореНрд▓рд┐рдВрдХ/рдПрдХ рд╕рд┐рдореНрд▓рд┐рдВрдХ рдХреЗ рдкреАрдЫреЗ рд╣реИ?

рдЙрджрд╛рд╣рд░рдг рдХрдорд╛рдВрдб рд░рди
aws s3 рд╕рд┐рдВрдХ s3://bucket/ /var/www/folder/ --delete

рдХрдИ рдлрд╛рдЗрд▓реЗрдВ рдЧрд╛рдпрдм рд╣реИрдВ
рд╕рдЯреАрдХ рд╕реНрдерд╛рдиреАрдп рдЖрдХрд╛рд░: 2625
рд╕рдЯреАрдХ s3: 2625
рд╕рдЯреАрдХ рд╕рдордп рдЯрд┐рдХрдЯ рд╕реНрдерд╛рдиреАрдп: 06-рдЬрдирд╡рд░реА-2017 9:32:31
рд╕рдЯреАрдХ рд╕рдордп рдЯрд┐рдХрдЯ s3: 20-рдЬреВрди-2017 10:14:57
S3 рдФрд░ рд╕реНрдерд╛рдиреАрдп рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдлрд╝рд╛рдЗрд▓

рдХрд░реАрдм 50,000 рдлрд╛рдЗрд▓реЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдРрд╕реЗ рдХрдИ рдорд╛рдорд▓реЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рднреА рд▓рд╛рдкрддрд╛ 20 рдЬреВрди 2017 рдХреЛ рдХрдИ рдмрд╛рд░ рд╕рд┐рдВрдХ рдореЗрдВ рд╣реИрдВред

--exact-timestamps рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рдлрд╝рд╛рдЗрд▓реЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡реЗ рдмрд┐рд▓реНрдХреБрд▓ рд╕рдорд╛рди рд╕рд╛рдордЧреНрд░реА рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡реЗ рдЕрднреА рднреА рдКрдкрд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд▓реЛрдЧреЛрдВ рдХреЛ рдпрд╛рдж рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдпрд╣рд╛рдБ рдПрдХ рд╣реА рдореБрджреНрджрд╛ред
aws s3 sync dist/ s3://bucket --delete рдиреЗ s3://bucket/index.html рдХреЛ dist/index.html рдХреЗ рд╕рд╛рде рдЕрдкрд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛

dist/index.html рдФрд░ s3://bucket/index.html рдХрд╛ рдлрд╝рд╛рдЗрд▓ рдЖрдХрд╛рд░ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдирдХрд╛ рд╕рдВрд╢реЛрдзрд┐рдд рд╕рдордп рднрд┐рдиреНрди рд╣реИред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХреБрдЫ рдмрд╛рд░ awscli рдиреЗ рдлрд╝рд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рдХреА, рд▓реЗрдХрд┐рди рдХреБрдЫ рдмрд╛рд░ рдирд╣реАрдВ

рдпрд╣рд╛рдВ рд╡рд╣реА, --exact-timestamps рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ - index.html рдУрд╡рд░рд░рд╛рдЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╣рдордиреЗ рдЕрдиреБрднрд╡ рдХрд┐рдпрд╛ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдЖрдЬ/рдкрд┐рдЫрд▓реЗ рд╕рдкреНрддрд╛рд╣ рдареАрдХ рдерд╛ред рдлрд┐рд░ рд╕реЗ index.html рдПрдХ рд╣реА рдлрд╝рд╛рдЗрд▓ рдЖрдХрд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╛рдордЧреНрд░реА рдФрд░ рд╕рдВрд╢реЛрдзрд┐рдд рд╕рдордп рдЕрд▓рдЧ рд╣реИрдВред

рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрд╛рдордХрд╛рдЬ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд╣реИ?

рдореИрдВ рдмрд╕ рдЗрд╕рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред @icymind рдФрд░ @samdammers рджреНрд╡рд╛рд░рд╛ рд░рд┐рдкреЛрд░реНрдЯ рдХреА рдЧрдИ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛: рдореЗрд░реА (рд╕реНрдерд╛рдиреАрдп) index.html рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдмрджрд▓ рдЧрдИ рдереА, рд▓реЗрдХрд┐рди рдЗрд╕рдХреА рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЖрдХрд╛рд░ S3 рдореЗрдВ рдкрд╣рд▓реЗ рдХреА рдХреЙрдкреА рдХреЗ рд╕рдорд╛рди рдерд╛ред {{aws s3 рд╕рд┐рдВрдХ}} рдХрдорд╛рдВрдб рдиреЗ рдЗрд╕реЗ рдЕрдкрд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдореЗрд░рд╛ "рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб" S3 рд╕реЗ index.html рдХреЛ рд╣рдЯрд╛рдирд╛ рдерд╛, рдФрд░ рдлрд┐рд░ рд╕рд┐рдВрдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдирд╛ рдерд╛ (рдЬрд┐рд╕рдиреЗ рдЗрд╕реЗ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдЬреИрд╕реЗ рдХрд┐ рдпрд╣ рдПрдХ рдирдИ рдлрд╝рд╛рдЗрд▓ рдереА, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ)ред

рд╕рд░реНрд╡рд░: EC2 linux
рд╕рдВрд╕реНрдХрд░рдг: aws-cli/1.16.108 Python/2.7.15 Linux/4.9.62-21.56.amzn1.x86_64 botocore/1.12.98


aws s3 sync 270T рд╕реЗ рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рдЪрд▓рдиреЗ рдХреЗ рдмрд╛рдж рдореИрдВрдиреЗ рдХреБрдЫ GB рдлрд╝рд╛рдЗрд▓реЗрдВ рдЦреЛ рджреАрдВред рд╕рд┐рдВрдХ рдиреЗ рд╡рд┐рд╢реЗрд╖ рд╡рд░реНрдгреЛрдВ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдХреЙрдкреА рдирд╣реАрдВ рдХрд┐рдпрд╛ред

рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрджрд╛рд╣рд░рдг /data/company/storage/projects/1013815/3.Company Estimates/B. Estimates

cp -R -n рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрдбрд╝рд╛

рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдпрд╣рд╛рдБ рдПрдХ рд╣реА рдЖрдХрд╛рд░ рдХреА xml рдлрд╝рд╛рдЗрд▓ рд╣реИ рд▓реЗрдХрд┐рди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордиреНрд╡рдпрд┐рдд рдирд╣реАрдВ рд╣реИ

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛

Bug.tar.gz
рд╕рдВрд▓рдЧреНрди рдЯрд╛рд░ рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░

tar -zxvf bug.tar.gz
aws s3 sync a/ s3://<some-bucket-name>/<some_dir>/ --delete
aws s3 sync b/ s3://<some-bucket-name>/<some_dir>/ --delete

рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рднрд▓реЗ рд╣реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ a рдФрд░ b рдореЗрдВ repomd.xml рд╕рд╛рдордЧреНрд░реА рдФрд░ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдореЗрдВ рднрд┐рдиреНрди рд╣реЛ
b рдХреЛ рд╕рд┐рдВрдХ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛
рдПрдбрдмреНрд▓реНрдпреВрдПрд╕-рдХреНрд▓реА/1.16.88 рдкрд╛рдпрдерди/2.7.15 рдбрд╛рд░реНрд╡рд┐рди/16.7.0 рдмреЛрдЯреЛрдХреЛрд░/1.12.78
aws-cli/1.16.109 Python/2.7.5 Linux/3.10.0-693.17.1.el7.x86_64 botocore/1.12.99

рдореИрдВ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБред s3 рд╕реЗ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рд╕рд┐рдВрдХ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬрд╣рд╛рдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реНрдерд╛рдиреАрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╡рд╣ рдлрд╝рд╛рдЗрд▓ рд╕реНрдерд╛рдиреАрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЕрджреНрдпрддрди рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ

рдореИрдВ рдпрд╣ рднреА рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ index.html рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдРрдк рд╣реИ рдЬреЛ рдЬреЗрдирд░реЗрдЯ рдХреА рдЧрдИ .js рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдЙрди рдкреБрд░рд╛рдиреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП --delete рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рд╕рдордиреНрд╡рдпрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬрд┐рдирдХрд╛ рдЕрдм рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред index.html рдХрднреА-рдХрднреА рдЕрдкрд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдПрдХ рдкреБрд░рд╛рдирд╛ index.html рдмрди рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ .js рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЕрдм рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИрдВред

рдЗрд╕рд▓рд┐рдП рдореЗрд░реА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддреА рд╣реИ !!!

рдореИрдВ рдлрд┐рд▓рд╣рд╛рд▓ рдЗрд╕ рдмрд╛рдд рд╕реЗ рдЕрдирдЬрд╛рди рд╣реВрдВ рдХрд┐ рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИред

рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдпрд╛ рдХрд╛рдордХрд╛рдЬ рд╣реИ?

рд╣рдореЗрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рдПрдХ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛ рд╣реИред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ, рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

aws s3 cp s3://SRC s3://DEST ...
aws s3 sync s3://SRC s3://DEST ... --delete

рд╣рдореЗрдВ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ, рдХрд┐ рдХреЙрдкреА рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкрд╣рд▓реЗ рд╣рдо рдХреЙрдкреА рдХрд░рддреЗ рд╣реИрдВ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣рдо рд╕рд┐рдВрдХ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрди рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдЕрдм рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИрдВред
рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЬрд▓реНрдж рд╕реЗ рдЬрд▓реНрдж рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░ рд▓рд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдореИрдВрдиреЗ рдЕрдкрдиреА рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ --exact-timestamps рдЬреЛрдбрд╝рд╛ рдФрд░ рд╕рдорд╕реНрдпрд╛ рджреЛрдмрд╛рд░рд╛ рдирд╣реАрдВ рд╣реБрдИред рд▓реЗрдХрд┐рди, рдпрд╣ рдкрд╣рд▓реА рдмрд╛рд░ рдореЗрдВ рд░реБрдХ-рд░реБрдХ рдХрд░ рдерд╛ рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЕрдЧрд░ рдРрд╕рд╛ рджреЛрдмрд╛рд░рд╛ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдореИрдВ @marns93 рдХреЗ рд╕реБрдЭрд╛рд╡ рдХреЗ рд╕рд╛рде

рд╣рдо рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ рдФрд░ --exact-timestamps рд╣рдорд╛рд░реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдпрд╣ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓ рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдореБрдЯреНрдареА рднрд░ (рдПрдХ рджрд░реНрдЬрди рд╕реЗ рдХрдо) рдлрд╛рдЗрд▓реЛрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдирд╛ рд╣реИред

рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдпрд╣ рд╣реЛрддрд╛ рд╣реИ, рд╡рд╣ рдКрдкрд░ рдмрддрд╛рдП рдЧрдП рдЕрдиреБрд╕рд╛рд░ рд╣реЛрддрд╛ рд╣реИ: рдпрджрд┐ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ sync рдПрдб рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдлрд╝рд╛рдЗрд▓ рд╕рд╛рдордЧреНрд░реА рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓ рд╣реИ рд▓реЗрдХрд┐рди рд╕рдорд╛рди рдлрд╝рд╛рдЗрд▓ рдЖрдХрд╛рд░ рд╣реИ, рддреЛ sync рдирдИ рдЕрдкрдбреЗрдЯ рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдирд╛ рдЫреЛрдбрд╝ рджреЗрдЧрд╛ рдПрд╕3.

рд╣рдордиреЗ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ aws s3 cp --recursive рдмрджрд▓рдирд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдмреБрд░рд╛ рдмрдЧ рд╣реИ - рд╕рдмрд╕реЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╣рдордиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдореЗрдВ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рджреМрдбрд╝ рдХреА рд╕реНрдерд┐рддрд┐ рдереА, рдпрд╣ рдорд╣рд╕реВрд╕ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛ рдХрд┐ aws-cli рдмрд╕ рдерд╛ рдЕрджреНрдпрддрди рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓(рдлрд╝рд╛рдЗрд▓реЛрдВ) рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдирд╣реАрдВ рдмрдирд╛рдирд╛ рдЪреБрдирдирд╛ред

рдореИрдВрдиреЗ рдЗрд╕реЗ рдПрдХ html рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рднреА рджреЗрдЦрд╛

aws-cli/1.16.168 Python/3.6.0 Windows/2012ServerR2 botocore/1.12.158

рдореИрдВрдиреЗ GitHub рдЬрд┐рд╕реНрдЯ рд╕реЗ s3 sync рдХрдорд╛рдВрдб рдХреЛ рдХреЙрдкреА рдкреЗрд╕реНрдЯ рдХрд┐рдпрд╛ рдФрд░ рдЙрд╕ рдкрд░ --size-only рд╕реЗрдЯ рдерд╛ред рдЗрд╕реЗ рд╣рдЯрд╛рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдареАрдХ рд╣реЛ рдЧрдИ!

рдмрд╕ рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рдПрдХ рдмрд╛рд▓реНрдЯреА рдкрд░ рдЕрдкрд▓реЛрдб рдХреА рдЬрд╛ рд░рд╣реА рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рднрд╛рдЧ рдЧрдпрд╛ред рд╣рдорд╛рд░рд╛ HTML рдХреЗрд╡рд▓ рдПрд╕реЗрдЯ рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП рд╣реИрд╢ рдХреЛрдб рдмрджрд▓рдиреЗ рдХреА рдкреНрд░рд╡реГрддреНрддрд┐ рд░рдЦрддрд╛ рдерд╛ рдФрд░ рдЗрд╕рд▓рд┐рдП рдЖрдХрд╛рд░ рд╣рдореЗрд╢рд╛ рд╕рдорд╛рди рдерд╛ред S3 рд╕рд┐рдВрдХ рдЗрдиреНрд╣реЗрдВ рдЫреЛрдбрд╝ рд░рд╣рд╛ рдерд╛ рдпрджрд┐ рдмрд┐рд▓реНрдб рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдерд╛ред рдЙрджрд╛рд╣рд░рдг:

10:01 - 1 рд░рди рдмрдирд╛рдПрдВ
10:05 - 2 рд░рди рдмрдирд╛рдПрдВ
10:06 - рдмрд┐рд▓реНрдб 1 рдХреЛ s3 . рдкрд░ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
10:10 - рдмрд┐рд▓реНрдб 2 рдХреЛ s3 . рдкрд░ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

рдмрд┐рд▓реНрдб 2 рдореЗрдВ 10:05 рдХреЗ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдХреЗ рд╕рд╛рде рдПрдЪрдЯреАрдПрдордПрд▓ рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрд╕3 рдкрд░ рдмрд┐рд▓реНрдб 1 рджреНрд╡рд╛рд░рд╛ рдЕрдкрд▓реЛрдб рдХреА рдЧрдИ рдПрдЪрдЯреАрдПрдордПрд▓ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ 10:06 рдХрд╛ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рд╣реИ, рдЬрдм рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдП рдЧрдП рдереЗред рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЙрдиреНрд╣реЗрдВ s3 рд╕рд┐рдВрдХ рджреНрд╡рд╛рд░рд╛ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рджреВрд░рд╕реНрде рдлрд╝рд╛рдЗрд▓реЗрдВ рд╕реНрдерд╛рдиреАрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ "рдирдИ" рд╣реИрдВред

рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╕реБрдЭрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдореИрдВ рдЕрдм s3 cp --recursive рдмрд╛рдж s3 sync --delete рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдореЗрд░рд╛ рднреА рдпрд╣реА рдореБрджреНрджрд╛ рдерд╛; рдореИрдВ --size-only рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛ред рд╣рдорд╛рд░реЗ index.html рдПрдХ рд╡рд░реНрдг рдЕрд▓рдЧ рдерд╛ ( . рдХреЗ рд▓рд┐рдП рдЪрд▓рд╛ рдЧрдпрд╛ # ,) рдЗрд╕рд▓рд┐рдП рдЖрдХрд╛рд░ рдПрдХ рд╣реА рдерд╛, рд▓реЗрдХрд┐рди S3 рдкрд░ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдирдП рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк 40 рдорд┐рдирдЯ рд╕реЗ рдкрд╣рд▓реЗ рдерд╛ .рдПрдЪрдЯреАрдПрдордПрд▓ред рдореИрдВрдиреЗ index.html рдХреЛ рдЕрд╕реНрдерд╛рдпреА рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреА рджреЛрдмрд╛рд░рд╛ рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред

рдпрд╣рд╛рдВ рд╡рд╣реА, рдПрдХ рд╣реА рдирд╛рдо рд╡рд╛рд▓реА рдлрд╛рдЗрд▓реЗрдВ рд▓реЗрдХрд┐рди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдФрд░ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде S3 рд╕реЗ рд╕реНрдерд╛рдиреАрдп рдореЗрдВ рд╕рд┐рдВрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ --delete рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

рд╣рдо рдПрдХ рд╣реА рдореБрджреНрджреЗ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░рддреЗ рд╣реИрдВред рд╕рдорд╛рди рдЖрдХрд╛рд░ рд╡рд╛рд▓рд╛ рд▓реЗрдХрд┐рди рдирдпрд╛ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рд╡рд╛рд▓рд╛ index.html рдХреЙрдкреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣ рдорд╛рдорд▓рд╛ рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рддрдп рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИ?

рджрд░рдЕрд╕рд▓ рдпрд╣ snyc рдХрдорд╛рдВрдб рдХреЛ рдмреЗрдХрд╛рд░ рдХрд░ рджреЗрддрд╛ рд╣реИред

рд╕рд╣реА рд╕рдордп

--рд╕рдЯреАрдХ-рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдиреЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░ рджрд┐рдпрд╛

рдореИрдВ рднреА рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реВрдВред рдореИрдВрдиреЗ --exact-timestamps рдЬреЛрдбрд╝рд╛ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧ рд░рд╣реА рдереА рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рдерд╛ред рдореИрдВрдиреЗ рдкреВрд░реА рдЦреЛрдЬ рдирд╣реАрдВ рдХреА рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ 100k рдлрд╛рдЗрд▓реЗрдВ рдФрд░ 20 рдЬреАрдмреА рдХрд╛ рдСрд░реНрдбрд░ рд╣реИ, рдЬреЛ рдпрд╣рд╛рдВ рдХреЗ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдХрдо рд╣реИред

рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рд╣реИ, aws s3 sync рдХреБрдЫ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рд╡рд┐рднрд┐рдиреНрди рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдФрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд┐рдерд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рднреАред рд▓реЙрдЧ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдЙрди рдЫреЛрдбрд╝реА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдордиреНрд╡рдпрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВред
рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ рдлрд┐рд░ рд╕реЗ aws s3 sync рдЪрд▓рд╛рддрд╛ рд╣реВрдВ, рддреЛ рд╡реЗ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╕рдордиреНрд╡рдпрд┐рдд рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред рдмрд╣реБрдд рдЕрдЬреАрдм!

рд╣реНрдпреВрдЧреЛ рдХреЗ рд╕рд╛рде рд╕рд╛рдЗрдЯ рдмрдирд╛рддреЗ рд╕рдордп рдореБрдЭреЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдереА рдФрд░ рдореИрдВрдиреЗ рдЖрдЦрд┐рд░рдХрд╛рд░ рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд▓рд┐рдпрд╛ред рдореИрдВ рдЕрдкрдиреЗ рд╣реНрдпреВрдЧреЛ рдереАрдо рдХреЗ рд▓рд┐рдП рд╕рдмрдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕реАрдЖрдИ рдкрд░ рдиреАрдЪреЗ рдирд╣реАрдВ рдЦреАрдВрдЪ рд░рд╣рд╛ рдерд╛ред рдпрд╣ рд╣реНрдпреВрдЧреЛ рдореЗрдВ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдВ рдкреИрджрд╛ рдХрд░ рд░рд╣рд╛ рдерд╛ рд▓реЗрдХрд┐рди рд╡рд┐рдлрд▓рддрд╛рдПрдВ рдирд╣реАрдВред

# On local
                   | EN
-------------------+-----
  Pages            | 16
  Paginator pages  |  0
  Non-page files   |  0
  Static files     |  7
  Processed images |  0
  Aliases          |  7
  Sitemaps         |  1
  Cleaned          |  0

# On CI
                   | EN  
-------------------+-----
  Pages            |  7  
  Paginator pages  |  0  
  Non-page files   |  0  
  Static files     |  2  
  Processed images |  0  
  Aliases          |  0  
  Sitemaps         |  1  
  Cleaned          |  0  

рдПрдХ рдмрд╛рд░ рдЬрдм рдореИрдВрдиреЗ рд╕рдмрдореЙрдбреНрдпреВрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рджрд┐рдпрд╛ рддреЛ рд╕рдм рдХреБрдЫ рдЙрдореНрдореАрдж рдХреЗ рдореБрддрд╛рдмрд┐рдХ рдХрд╛рдо рдХрд░ рдЧрдпрд╛ред

рд╣рдо рднреА рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реБрдП рд╣реИрдВ, рдЗрддрдирд╛ рдЕрдзрд┐рдХ рдХрд┐ рдПрдХ рдирдИ vendor/autoload.php рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд┐рдВрдХ рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдПрдХ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо ~18 рдШрдВрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЪрд▓рд╛ рдЧрдпрд╛, рдФрд░ vendor/composer/autoload_real.php рд╕рд╛рде рдкреБрд░рд╛рдирд╛ рд╣реЛ рдЧрдпрд╛ рдерд╛ рдЗрд╕рд▓рд┐рдП рдкреВрд░рд╛ рдРрдк рд▓реЛрдб рдирд╣реАрдВ рд╣реЛ рд╕рдХрд╛ред

рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рдЕрдЬреАрдм рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдФрд░ рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдЗрддрдиреЗ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЦреБрд▓рд╛ рд╣реИред

рдПрдХ рд╕рд┐рдВрдХ рдЕрдВрддрд┐рдо рд╕рдВрд╢реЛрдзрд┐рдд рдХреЗ рдмрдЬрд╛рдп рд╣реИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛? 0 рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рднрд╡рд┐рд╖реНрдп рдХреЗ Googlers рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рдВрд╢реЛрдзрд┐рдд рддреНрд░реБрдЯрд┐ рдЬреЛ рдореБрдЭреЗ рдорд┐рд▓ рд░рд╣реА рдереА:

PHP message: PHP Fatal error:  Uncaught Error: Class 'ComposerAutoloaderInitXXXXXXXXXXXXX' not found in /xxx/xxx/vendor/autoload.php:7
Stack trace:
#0 /xxx/xxx/bootstrap/app.php(3): require_once()
#1 /xxx/xxx/public/index.php(14): require('/xxx/xxx...')
#2 {main}
  thrown in /xxx/xxx/vendor/autoload.php on line 7" while reading response header from upstream: ...
---

рд╡рд╣реА рд╕рдорд╕реНрдпрд╛, рд╕рднреА рдлрд╝рд╛рдЗрд▓реЗрдВ рд╕рдордиреНрд╡рдпрд┐рдд рдирд╣реАрдВ рд╣реИрдВ, --exact-timestamps рдиреЗ рдорджрдж рдирд╣реАрдВ рдХреАред

aws --version
aws-cli/1.18.22 Python/2.7.13 Linux/4.14.152-127.182.amzn2.x86_64 botocore/1.15.22

рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЯрд┐рдХрдЯ рдЗрддрдиреЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЦреБрд▓рд╛ рд╣реИ ... рдпрд╣рд╛рдБ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдЕрдореЗрдЬрд╝рди рдХрд╛ рдЧреНрд░рд╛рд╣рдХ рдЬреБрдиреВрди рдХрд╣рд╛рдБ рд╣реИ?

рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЯрд┐рдХрдЯ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рдмрдВрдж рдирд╣реАрдВ рд╣реБрдЖ рдерд╛ред рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ, рдпрд╣ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ (рдореЗрд░реЗ рд╕рд╣рд┐рдд) рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдзрд╛рд░рдгрд╛ рдмрдирд╛рддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдлрд┐рд░ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рдЬрдм рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдХреИрд╕реЗ рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВред

  • рдЬрдм рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рдВрдХ рдХреА рдЬрд╛рддреА рд╣реИ рдпрд╛ _to_ s3 рдХреЙрдкреА рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдЙрд╕реЗ рдмрдХреЗрдЯ рдкрд░ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рд╡рд╣ рддрд╛рд░реАрдЦ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдХреА рдЙрд╕реЗ рдХреЙрдкреА рдХреА рдЧрдИ рдереА, рдЬреЛ рдХрд┐ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреА рддрд╛рд░реАрдЦ рд╕реЗ _always_ рдирдИ рд╣реЛрддреА рд╣реИред рдЗрд╕ рддрд░рд╣ s3 рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
  • рдлрд╝рд╛рдЗрд▓реЗрдВ рдХреЗрд╡рд▓ рддрднреА рд╕рдордиреНрд╡рдпрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИрдВ рдЬрдм рдЖрдХрд╛рд░ рдмрджрд▓рддрд╛ рд╣реИ, рдпрд╛ рд▓рдХреНрд╖реНрдп рдкрд░ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рд╕реНрд░реЛрдд рд╕реЗ _older_ рд╣реИред
  • рдЗрд╕рдХрд╛ рдЕрд░реНрде рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЖрдХрд╛рд░ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣рддрд╛ рд╣реИ рдФрд░ рдЙрди рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рддрд┐рдерд┐рдпрд╛рдВ рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдХреЙрдкреА рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рдкреВрд░реНрд╡-рддрд╛рд░реАрдЦ рд╣реЛрддреА рд╣реИрдВ, рддреЛ s3 рд╕рд┐рдВрдХ рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рд╕рд┐рдВрдХ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
  • s3 рд╕реЗ рд▓реЛрдХрд▓ рдореЗрдВ рдХреЙрдкреА рдХрд░рддреЗ рд╕рдордп --exact-timestamps _only_ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЬрд╛рдирдмреВрдЭрдХрд░ рд╕реНрдерд╛рдиреАрдп рдХреЗ рд▓рд┐рдП s3 рдХреЗ рд▓рд┐рдП рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк _never_ рдмрд░рд╛рдмрд░ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рд╕реЗ s3 рдореЗрдВ рд╕рдордиреНрд╡рдпрд┐рдд рдХрд░рддреЗ рд╕рдордп рдЗрд╕реЗ рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд╣реИред
  • рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ s3 рдЕрдкрд▓реЛрдб рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИрд╢ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдЖрдХрд╛рд░ рдФрд░ рдЕрдВрддрд┐рдо рдЕрдкрд▓реЛрдб рддрд┐рдерд┐ рдХреЛ рдЪреЗрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЯрд╛рд▓рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред

рд▓рдмреНрдмреЛрд▓реБрдЖрдм рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд░рд╛рджрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕реЗ рдХрдИ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдпрд╣ рд╡рд╛рдВрдЫрдиреАрдп рдирд╣реАрдВ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ s3 cp --recursive рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ

@ рдЬреИрдо 13 рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЕрдм рдпрд╣ рд╕рдм рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ!

рдлрд┐рд░ рднреА, рдореИрдВ рддрд░реНрдХ рджреВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЦрд░рд╛рдм рджрд╕реНрддрд╛рд╡реЗрдЬ рд╣реИ (рдореБрдЭреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рдПрдХ рдореЛрдЯреА рд▓рд╛рд▓ рдЪреЗрддрд╛рд╡рдиреА рдХреА рдЙрдореНрдореАрдж рд╣реЛрдЧреА рдХрд┐ --exact-timestamps рдХреЗрд╡рд▓ _from s3 рд╕реЗ local_ рддрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ s3 cli рдХреЗ рд▓рд┐рдП рдЪреБрдкрдЪрд╛рдк рдХреЗ рдмрдЬрд╛рдп рд╕рд┐рд░реНрдл рдЬрдорд╛рдирдд рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛) рдФрд░ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИрд╢-рдЖрдзрд╛рд░рд┐рдд рддреБрд▓рдирд╛ рдореЛрдб рдордЬрд╝рдмреВрддреА рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдореЛрдб рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рд╣рд╛рдВ, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЪреБрдкрдЪрд╛рдк рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛ рдмрд╣реБрдд рд╣реА рдЕрдиреБрдкрдпреЛрдЧреА рд╣реИред рдкрд┐рдЫрд▓реЗ 2 рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдХреА рдУрд░ рд╕реЗ рдЗрд╕ рдЯрд┐рдХрдЯ рдкрд░ рдХрд┐рд╕реА рднреА рдкреНрд░рдмрдВрдзрди рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рднреА рдмрд╣реБрдд рдХреБрдЫ рдХрд╣рддреА рд╣реИред

@ Jam13 рдореИрдВрдиреЗ рдХреБрдЫ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рдЦреБрджрд╛рдИ рдХреА, рдФрд░ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдореБрдЭреЗ s3 рд╕реЗ рд╕реНрдерд╛рдиреАрдп рддрдХ рдХреБрдЫ рдореБрджреНрджреЛрдВ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП --exact-timestamps рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдзрдиреНрдпрд╡рд╛рдж!

@kyleknap @KaibaLopez @stealthycoin рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ?

рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЯрд┐рдХрдЯ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рдмрдВрдж рдирд╣реАрдВ рд╣реБрдЖ рдерд╛ред рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ, рдпрд╣ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ (рдореЗрд░реЗ рд╕рд╣рд┐рдд) рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдзрд╛рд░рдгрд╛ рдмрдирд╛рддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдлрд┐рд░ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рдЬрдм рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдХреИрд╕реЗ рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВред

* When a file is synced or copied _to_ s3, the timestamp it receives on the bucket is the date it was copied, which is _always_ newer than the date of the source file. This is just how s3 works.

* Files are only synced if the size changes, or the timestamp on the target is _older_ than the source.

* This means that if source files are updated but the size of the files remains unchanged and the dates on those changed files pre-date when they were last copied, s3 sync will not sync them again.

* Using `--exact-timestamps` _only_ works when copying from s3 to local. It is deliberately not enabled for local to s3 because the timestamps are _never_ equal. So setting it when syncing from local to s3 has no effect.

* I don't think s3 calculates hashes for uploaded files, so there's no way of avoiding file size and last uploaded date as checks.

рд▓рдмреНрдмреЛрд▓реБрдЖрдм рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд░рд╛рджрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕реЗ рдХрдИ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдпрд╣ рд╡рд╛рдВрдЫрдиреАрдп рдирд╣реАрдВ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ s3 cp --recursive рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ

s3 рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╣реИрд╢ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЬрд╛рдирдиреЗ рдпреЛрдЧреНрдп рддрд░реАрдХреЗ рд╕реЗ рдирд╣реАрдВ рдпрджрд┐ рдЖрдк рдЕрдкрд▓реЛрдбрд░ рдирд╣реАрдВ рд╣реИрдВ , рдФрд░ рдЗрд╕реЗ рдкрд░рд┐рдЪрд┐рдд ETag рдХреЗ рд░реВрдк рдореЗрдВ

рдпрд╣ рд╢рд╛рдпрдж рдЗрд░рд╛рджреЗ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреИрд╕рд╛ рдЗрд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдЬрд╛рдВрдЪрдирд╛ рддреБрдЪреНрдЫ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ рдмрджрд▓ рдЧрдИ рд╣реИ рдпрд╛ рдирд╣реАрдВ

рд▓реЛрдЧреЛрдВ рдХреЛ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ рд╕рд┐рдВрдХ рд╕реЗ рдмрд╛рд╣рд░ рдЕрдиреБрднрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдмрдбрд╝рд╛ рдЧреЛрдЪрд╛ рд╣реИ
рдЖрдВрдХрдбрд╝реЗред 100 рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╣реИрдВ рдЬреЛ рдпрд╣рд╛рдВ рд╕рднреА рдХреЛ рдмрдЪрд╛ рд╕рдХрддреЗ рд╣реИрдВ
рдЗрд╕ рдЯрд┐рдХрдЯ рдХреЛ рдкрдврд╝рдиреЗ рдХрд╛ рд╕рдордп, рд╕рд╛рде рд╣реА рдЗрд╕реЗ рдЦреЛрдЬрдиреЗ рдореЗрдВ рдмрд┐рддрд╛рдпрд╛ рдЧрдпрд╛ рд╕рдордп
рдЙрдирдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдПрдХ рдореБрджреНрджрд╛ рдерд╛ред рд╡реЗ рдЗрдирдореЗрдВ рд╕реЗ рдПрдХ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ?

рдордВрдЧрд▓рд╡рд╛рд░, 14 рдЕрдкреНрд░реИрд▓, 2020 рджреЛрдкрд╣рд░ 1:57 рдмрдЬреЗ рдХреАрде рдХреЗрд▓реА рд╕реВрдЪрдирд╛рдПрдВ @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЯрд┐рдХрдЯ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рдмрдВрдж рдирд╣реАрдВ рд╣реБрдЖ рдерд╛ред рдЬрд╣рд╛рдБ рддрдХ рдореИрдВ рдпрд╣ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБ
рдмрддрд╛рдУ, рдпрд╣ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ (рдореЗрд░реЗ рд╕рд╣рд┐рдд) рдзрд╛рд░рдгрд╛ рдмрдирд╛рддреЗ рд╣реИрдВ
рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдлрд┐рд░ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рдЬрдм рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рдХрд┐ рд╡реЗ рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ
рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реЛрдирд╛ред

  • рдЬрдм рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рдВрдХ рдХреА рдЬрд╛рддреА рд╣реИ рдпрд╛ _to_ s3 рдХреЙрдкреА рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдЙрд╕реЗ рдмрдХреЗрдЯ рдкрд░ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рд╡рд╣ рддрд╛рд░реАрдЦ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдХреА рдЙрд╕реЗ рдХреЙрдкреА рдХреА рдЧрдИ рдереА, рдЬреЛ рдХрд┐ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреА рддрд╛рд░реАрдЦ рд╕реЗ _always_ рдирдИ рд╣реЛрддреА рд╣реИред рдЗрд╕ рддрд░рд╣ s3 рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

  • рдлрд╝рд╛рдЗрд▓реЗрдВ рдХреЗрд╡рд▓ рддрднреА рд╕рдордиреНрд╡рдпрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИрдВ рдЬрдм рдЖрдХрд╛рд░ рдмрджрд▓рддрд╛ рд╣реИ, рдпрд╛ рд▓рдХреНрд╖реНрдп рдкрд░ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рд╕реНрд░реЛрдд рд╕реЗ _older_ рд╣реИред

  • рдЗрд╕рдХрд╛ рдЕрд░реНрде рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЖрдХрд╛рд░ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣рддрд╛ рд╣реИ рдФрд░ рдЙрди рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рддрд┐рдерд┐рдпрд╛рдВ рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдХреЙрдкреА рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рдкреВрд░реНрд╡-рддрд╛рд░реАрдЦ рд╣реЛрддреА рд╣реИрдВ, рддреЛ s3 рд╕рд┐рдВрдХ рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рд╕рд┐рдВрдХ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

  • s3 рд╕реЗ рд▓реЛрдХрд▓ рдореЗрдВ рдХреЙрдкреА рдХрд░рддреЗ рд╕рдордп --exact-timestamps _only_ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЬрд╛рдирдмреВрдЭрдХрд░ рд╕реНрдерд╛рдиреАрдп рдХреЗ рд▓рд┐рдП s3 рдХреЗ рд▓рд┐рдП рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк _never_ рдмрд░рд╛рдмрд░ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рд╕реЗ s3 рдореЗрдВ рд╕рдордиреНрд╡рдпрд┐рдд рдХрд░рддреЗ рд╕рдордп рдЗрд╕реЗ рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд╣реИред

  • рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ s3 рдЕрдкрд▓реЛрдб рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИрд╢ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдЖрдХрд╛рд░ рдФрд░ рдЕрдВрддрд┐рдо рдЕрдкрд▓реЛрдб рддрд┐рдерд┐ рдХреЛ рдЪреЗрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЯрд╛рд▓рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред

рд▓рдмреНрдмреЛрд▓реБрдЖрдм рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд░рд╛рджрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рд╣реИрдВ
рдЬрд╣рд╛рдВ рдпрд╣ рд╡рд╛рдВрдЫрдиреАрдп рдирд╣реАрдВ рд╣реИред рдЬреИрд╕рд╛ рдКрдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд╣реИ
<#m_8540343689970969812_issuecomment-534061850> рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ
s3 cp --recursive . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

s3 рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╣реИрд╢ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЬрд╛рдирдиреЗ рдпреЛрдЧреНрдп рддрд░реАрдХреЗ рд╕реЗ рдирд╣реАрдВ
https://teppen.io/2018/10/23/aws_s3_verify_etags/ , рдФрд░ рдЗрд╕реЗ рдЗрд╕ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ
рдкрд░рд┐рдЪрд┐рдд ETag https://en.wikipedia.org/wiki/HTTP_ETag ред рд╕рдорд╕реНрдпрд╛
рдпрд╣ рд╣реИ рдХрд┐ ETag рд╡рд┐рдЦрдВрдбреВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдЦрдВрдб рдХреЗ рдЖрдХрд╛рд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ
рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрджрд┐ рдЖрдк рдЕрдкрд▓реЛрдбрд░ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рд╕рдВрднрд╡рддрдГ рдЖрдк рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ
рдЪрдВрдХ рдЖрдХрд╛рд░ рдХреЛ рдЬрд╛рдиреЗрдВ (рд▓реЗрдХрд┐рди ETag рд╕реЗ рд╡рд┐рдЦрдВрдбреВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред рдореИрдВ
рдкрддрд╛ рдирд╣реАрдВ рдРрд╕рд╛ рдХреНрдпреЛрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рдереАред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/aws/aws-cli/issues/3273#issuecomment-613677369 , рдпрд╛
рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд
https://github.com/notifications/unsubscribe-auth/ADUA4NKJMCUSGTNAAITGPXTRMTE2NANCNFSM4E3JNHPQ
.

>

...рддреЛрдо

рдПрдХ рд╣реА рдореБрджреНрджрд╛ рдерд╛ред рд╕реНрд░реЛрдд рдмрдХреЗрдЯ рдиреАрддрд┐ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛:

 "Action": [
                "s3:*"
            ],

рдореБрдЭреЗ cp --recursive рдФрд░ sync рджреЛрдиреЛрдВ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдереАред
рдпрд╣ рд╕рдм рд╣рд▓ рдХрд░ рджрд┐рдпрд╛ред рдореЗрд░реЗ рдкрд╛рд╕ рджреЛ рдХреНрд░рд┐рдпрд╛рдПрдВ рдереАрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдареАрдХ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛, рд▓реЗрдХрд┐рди рдирд╣реАрдВред рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдПрдВ рдФрд░ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕рд╕реЗ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИред

рдпрд╣рд╛рдВ рдпрд╣ рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдореБрдЭреЗ sync рд╕рд╛рде рднреА рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИред рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдПрдХрдорд╛рддреНрд░ рдХрд╛рд░рдг рдпрд╣ рдерд╛ рдХрд┐ рдореИрдВ рджреЛрдиреЛрдВ рд╕рд┐рд░реЛрдВ рдкрд░ рдПрдордПрдЪрдПрд▓ рдХреЛ рд╕реАрд▓ рдФрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд░рд╣рд╛ рдерд╛ред sync рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдФрд░ рдореИрдВ 890 рдЬреАрдмреА рдореЗрдВ рд╕реЗ рд▓рдЧрднрдЧ 60 рдЬреАрдмреА рдЦреЛ рд░рд╣рд╛ рдерд╛, рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛ред рддрдм рдореБрдЭреЗ рдпрд╣ рдзрд╛рдЧрд╛ рдорд┐рд▓рд╛ рдФрд░ cp --recursive рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдбреЗрдЯрд╛ рдлрд┐рд░ рд╕реЗ рдмрд╣рдиреЗ рд▓рдЧрд╛ред рдмрд╛рдХреА рдбреЗрдЯрд╛ рдорд┐рд▓рдиреЗ рдХреЗ рдмрд╛рдж рдореИрдВ рдПрдордПрдЪрдПрд▓ рдХреЛ рдЖрдЦрд┐рд░реА рдмрд╛рд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реВрдВрдЧрд╛ред

рдореИрдВрдиреЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреА, рдореИрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ:
рдПрдбрдмреНрд▓реНрдпреВрдПрд╕-рдХреНрд▓реА/1.18.34 рдкрд╛рдпрдерди/2.7.17 рдбрд╛рд░реНрд╡рд┐рди/19.4.0 рдмреЛрдЯреЛрдХреЛрд░/1.13.50

рдпрджрд┐ рдЖрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдкрд░рд┐рд╡рд░реНрддрди рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╡рд╣реА рдкрд░рд┐рд╡рд░реНрддрди рдЕрдм рдбрд╛рдЙрдирд▓реЛрдб рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ:

#!/bin/bash
PROFILE=foobar #PUT YOUR PROFILE HERE
BUCKET=baz123  #PUT YOUR BUCKET HERE

mkdir -p test/local
mkdir -p test/s3

cat >test/s3/test.json <<EOF
{
  "__comment_logging": "set cookie expiration time of aws split, examples '+1 hour', '+5 days', '+100 days'",
  "splitCookieExpiration": "+3 hours"
}
EOF

#UPLOAD
aws --profile=$PROFILE s3 sync --delete test/s3 s3://$BUCKET/ 
#DOWNLOAD
aws --profile=$PROFILE s3 sync --delete s3://$BUCKET/ test/local


#CHANGE 
cat >test/s3/test.json <<EOF
{
  "__comment_logging": "set cookie expiration time of aws split, examples '+1 hour', '+5 days', '+100 days'",
  "splitCookieExpiration": "+2 hours"
}
EOF


#UPLOAD
aws --profile=$PROFILE s3 sync --delete test/s3 s3://$BUCKET/ 
#DOWNLOAD
aws --profile=$PROFILE s3 sync --delete s3://$BUCKET/ test/local

@htrappmann рдХреГрдкрдпрд╛ @jam13 рдЙрддреНрддрд░ https://github.com/aws/aws-cli/issues/3273#issuecomment -602514439 рдкрд╣рд▓реЗ рдкрдврд╝реЗрдВ - рдпрд╣ рдХреЛрдИ рдмрдЧ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ!

рд╕рдВрдХреЗрдд @applerom рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд▓реЗрдХрд┐рди рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдордЭ рдирд╣реАрдВ рдкрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдХреИрд╕реЗ @ jam13 рдЗрд╕реЗ "рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ" рдШреЛрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕реНрд░реЛрдд рдФрд░ рдЧрдВрддрд╡реНрдп рдХреЛ рд╕рдорд╛рди рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд┐рдВрдХ рдЯреВрд▓ рдХреЛ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдпрд╣ рдЗрд╕ рд╕рд┐рдВрдХ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЬреЛ рдЗрд╕реЗ рдХрдИ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдмреЗрдХрд╛рд░ рдмрдирд╛ рджреЗрддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдЧрд░ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЖрдХрд╛рд░ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрд░реЛрдд рд╕рдордп рдЯрд┐рдХрдЯ рдирдпрд╛ рд╣реИ, рддреЛ рднреА рдХреЛрдИ рд╕рд┐рдВрдХ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдореЗрд░реА рдЙрджрд╛рд╣рд░рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВред

рд╕рдВрдХреЗрдд @applerom рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд▓реЗрдХрд┐рди рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдордЭ рдирд╣реАрдВ рдкрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдХреИрд╕реЗ @ jam13 рдЗрд╕реЗ "рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ" рдШреЛрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕реНрд░реЛрдд рдФрд░ рдЧрдВрддрд╡реНрдп рдХреЛ рд╕рдорд╛рди рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд┐рдВрдХ рдЯреВрд▓ рдХреЛ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдпрд╣ рдЗрд╕ рд╕рд┐рдВрдХ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЬреЛ рдЗрд╕реЗ рдХрдИ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдмреЗрдХрд╛рд░ рдмрдирд╛ рджреЗрддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдЧрд░ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЖрдХрд╛рд░ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрд░реЛрдд рд╕рдордп рдЯрд┐рдХрдЯ рдирдпрд╛ рд╣реИ, рддреЛ рднреА рдХреЛрдИ рд╕рд┐рдВрдХ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдореЗрд░реА рдЙрджрд╛рд╣рд░рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЧрд▓рдд рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдирд╛ред

рдбрд╛рдЙрдирд▓реЛрдб рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдХреБрдЫ рдЕрдиреНрдп рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдП:

ls -l test/local/test.json
aws s3 sync --delete s3://$BUCKET/ test/local
touch -m -t 201901010000 test/local/test.json
ls -l test/local/test.json
aws s3 sync --delete s3://$BUCKET/ test/local
touch test/local/test.json
ls -l test/local/test.json
aws s3 sync --delete s3://$BUCKET/ test/local

рдлрд╝рд╛рдЗрд▓ рд╕рдВрд╢реЛрдзрди рд╕рдордп рдХреЛ рдкрд┐рдЫрд▓реЗ рд╡рд░реНрд╖ рдореЗрдВ рдмрджрд▓рддреЗ рд╕рдордп, s3 рд╕рд┐рдВрдХ рдЕрднреА рднреА рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рд╕рдордпрдХреНрд╖реЗрддреНрд░ рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реИред

рд╕рдВрд╢реЛрдзрди рд╕рдордп рдХреЛ рдЕрдм рдореЗрдВ рдмрджрд▓рддреЗ рд╕рдордп (рдЗрд╕рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рдлрд╝рд╛рдЗрд▓ рд░рд┐рдореЛрдЯ рд╕реЗ рдирдИ рд╣реИ), s3 рд╕рд┐рдВрдХ _does_ рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ!

рдореИрдВ рдЗрд╕рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рдирд┐рдХрд╛рд▓ рд╕рдХрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХреА, рдХреМрди рд╕рд╛ рд░рд╛рдЬреНрдп ( --exact-timestamps рд╡рд┐рдХрд▓реНрдк рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╕рдордп):

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕рдорд╛рди рдЖрдХрд╛рд░ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рд╕реНрдерд╛рдиреАрдп рд╕рдВрд╕реНрдХрд░рдг S3 рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдирдпрд╛ рди рд╣реЛред

рдбрд╛рдЙрдирд▓реЛрдб рдХреЗ рд▓рд┐рдП --exact-timestamps рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдореЗрдВ рдХреЛрдИ рдЕрдВрддрд░ рдПрдХ рдкреНрд░рддрд┐ рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИ), рд▓реЗрдХрд┐рди рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдореБрдЭреЗ рдкреАрдЫреЗ рдХреА рдУрд░ рд▓рдЧрддрд╛ рд╣реИред

рд╢рд╛рдпрдж "рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ" рдХрд╣рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдореБрдЭреЗ "рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ" рдХрд╣рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ред

@jam13 рд╡рд╛рд╣ рдпрд╣ рдмрд╣реБрдд рдЕрдЬреАрдм рд╣реИ, рдФрд░ рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рдПрдХ рднреНрд░рдо рд╣реИ!
рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдпрд╣ рдмрдЧ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдирдпрд╛ рддрд░реАрдХрд╛ рд╣реИ, рддреЛ рдЙрдиреНрд╣реЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рдбрд╛рд▓рдХрд░ ...

@jam13

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рдЯрд╛рдЗрдордЬрд╝реЛрди рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдЗрдВрдХрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рд░ рджрд┐рди, рдЬрдм рдореИрдВ s3 рдХрдВрд╕реЛрд▓ рдореЗрдВ рдкрд╣рд▓рд╛ рдмрджрд▓рд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ aws s3 sync s3://$BUCKET . рд╕рд┐рдВрдХ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рд╕рд┐рдВрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдЧрд░ рдореИрдВ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдФрд░ рдмрджрд▓рд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдлрд┐рд░ рд╕рд┐рдВрдХ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рд╕рд┐рдВрдХ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдЧрд▓реЗ рджрд┐рди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рдореБрдЭреЗ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЯрд╛рдЗрдордЬрд╝реЛрди рдХреА рд╡рдЬрд╣ рд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рддреЛ touch -m рдХрдорд╛рдВрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдФрд░ рдЬрд╛рдБрдЪ рдХрд░реЗрдВ рдЬрд┐рд╕рдХрд╛ рдЖрдкрдиреЗ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдерд╛ред

touch -m -t 201901010000 test/local/test.json
рдлрд╝рд╛рдЗрд▓ рд╕рдВрд╢реЛрдзрди рд╕рдордп рдХреЛ рдкрд┐рдЫрд▓реЗ рд╡рд░реНрд╖ рдореЗрдВ рдмрджрд▓рддреЗ рд╕рдордп, s3 рд╕рд┐рдВрдХ рдЕрднреА рднреА рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рд╕рдордпрдХреНрд╖реЗрддреНрд░ рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реИред

рдКрдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдЯрдЪ рдХрдорд╛рдВрдб рдХреЗрд╡рд▓ рдорд╛рдЗрдо рдХреЛ рдмреИрдХрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИред рдпрд╣ ctime рдХреЛ рдмреИрдХрдбреЗрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ (рдФрд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛)ред
рдХреНрдпрд╛ S3 cli рд╢рд╛рдпрдж ctime рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ?

$ touch file
$ stat -x file
  File: "file"
  Size: 0            FileType: Regular File
  ...
  ...
Access: Mon Jul 20 21:59:11 2020
Modify: Mon Jul 20 21:59:11 2020
Change: Mon Jul 20 21:59:11 2020

$ touch -m -t 201901010000 file
$ stat -x file
  File: "file"
  Size: 0            FileType: Regular File
  ...
  ...
Access: Mon Jul 20 21:59:11 2020
Modify: Tue Jan  1 00:00:00 2019
Change: Mon Jul 20 22:01:48 2020

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рдВрдХ рдХреЛ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗрдиреА рдЪрд╛рд╣рд┐рдП, рдФрд░ рджреВрд░рд╕реНрде рд░реВрдк рд╕реЗ рд╕рдорд╛рди рд╣реИрдВред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдореИрдВ рдРрд╕рд╛ рдХрд╣рдиреЗ рдореЗрдВ рдЕрдиреБрдЪрд┐рдд рд╣реВрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ aws s3 sync рдПрдХ рд╕рд┐рдВрдХ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ update рдЕрдзрд┐рдХ рд╣реИред рдореИрдВ рдЕрдм рдХреЗ рд╣рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛ рд░рд╣рд╛ рд╣реВрдБ aws s3 sync рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП aws s3 cp --recursive ред

https://github.com/aws/aws-cli/issues/3273#issuecomment -602514439 рдкрд░ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

kangman picture kangman  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

DrStrangepork picture DrStrangepork  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

braddr picture braddr  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

pawelkilian picture pawelkilian  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

maanbsat picture maanbsat  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ