рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдИ рд▓рд╛рдЦ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣реИрдВ рдФрд░ S3 рдордЬрд╝рдмреВрддреА рд╕реЗ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рд┐рдВрдХ рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдордиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдРрд╕реА рдХрдИ рдлрд╛рдЗрд▓реЗрдВ рдереАрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд▓рдЧрднрдЧ рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рд╡реЗ рдЕрд▓рдЧ рд╣реИрдВ рд▓реЗрдХрд┐рди рд╕рд┐рдВрдХ рдпрд╛ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВред
рд╕реНрд░реЛрдд рдФрд░ рдЧрдВрддрд╡реНрдп рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рджреЛрдиреЛрдВ рднреА рднрд┐рдиреНрди рд╣реИрдВ рд▓реЗрдХрд┐рди рд╕рдордиреНрд╡рдпрди рдХрднреА рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред S3 рдореЗрдВ рдирд╡реАрдирддрдо рдлрд╝рд╛рдЗрд▓ рд╣реИред
рдХрдорд╛рдВрдб рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ
рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ s3 s3: // рд╕реНрд░реЛрдд / рд╕реНрдерд╛рдиреАрдп-рдлрд╝реЛрд▓реНрдбрд░ --delete
рд╕рд┐рдВрдХ рдирд╣реАрдВ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рдХреА рдПрдХ рд╣реА рддрд╛рд░реАрдЦ рд╣реЛрддреА рд╣реИ рд▓реЗрдХрд┐рди рд╡реЗ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдореЗрдВ рдлреИрд▓реА рд╣реБрдИ рд╣реЛрддреА рд╣реИрдВред
рдХреНрдпрд╛ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдХреЛ рдмрджрд▓рдиреЗ рдФрд░ рд╕рдВрднрд╡рддрдГ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП S3 рдЯрдЪ рдХрдорд╛рдВрдб рд╣реИ?
рдЗрд╕рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдЖрдк рд╕рдВрднрд╡рддрдГ --exact-timestamps
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрджрд┐ рдЖрдк рдЕрдкрд▓реЛрдб рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрдкрд▓реЛрдб рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдкреБрдирд░реБрддреНрдкрд╛рджрди рдореЗрдВ рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП, рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕рдордиреНрд╡рдпрд┐рдд рдирд╣реАрдВ рд╣реЛ рд░рд╣реА рд╣реИрдВ?
рдЙрджрд╛рд╣рд░рдг рдХрдорд╛рдВрдб рд░рди
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
рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЯрд┐рдХрдЯ рдЗрддрдиреЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЦреБрд▓рд╛ рд╣реИ ... рдпрд╣рд╛рдБ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдЕрдореЗрдЬрд╝рди рдХрд╛ рдЧреНрд░рд╛рд╣рдХ рдЬреБрдиреВрди рдХрд╣рд╛рдБ рд╣реИ?
рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЯрд┐рдХрдЯ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рдмрдВрдж рдирд╣реАрдВ рд╣реБрдЖ рдерд╛ред рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ, рдпрд╣ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ (рдореЗрд░реЗ рд╕рд╣рд┐рдд) рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдзрд╛рд░рдгрд╛ рдмрдирд╛рддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдлрд┐рд░ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рдЬрдм рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдХреИрд╕реЗ рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВред
--exact-timestamps
_only_ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЬрд╛рдирдмреВрдЭрдХрд░ рд╕реНрдерд╛рдиреАрдп рдХреЗ рд▓рд┐рдП s3 рдХреЗ рд▓рд┐рдП рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк _never_ рдмрд░рд╛рдмрд░ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рд╕реЗ 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 рдкрд░ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЯрд┐рдХрдЯ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рдмрдВрдж рдирд╣реАрдВ рд╣реБрдЖ рдерд╛ред рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ, рдпрд╣ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ (рдореЗрд░реЗ рд╕рд╣рд┐рдд) рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдзрд╛рд░рдгрд╛ рдмрдирд╛рддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдлрд┐рд░ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рдЬрдм рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдХреИрд╕реЗ рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВред
--exact-timestamps
_only_ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЬрд╛рдирдмреВрдЭрдХрд░ рд╕реНрдерд╛рдиреАрдп рдХреЗ рд▓рд┐рдП s3 рдХреЗ рд▓рд┐рдП рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк _never_ рдмрд░рд╛рдмрд░ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рд╕реЗ s3 рдореЗрдВ рд╕рдордиреНрд╡рдпрд┐рдд рдХрд░рддреЗ рд╕рдордп рдЗрд╕реЗ рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд╣реИредрд▓рдмреНрдмреЛрд▓реБрдЖрдм рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд░рд╛рджрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕реЗ рдХрдИ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдпрд╣ рд╡рд╛рдВрдЫрдиреАрдп рдирд╣реАрдВ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛
s3 cp --recursive
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ