æ°åäžã®ãã¡ã€ã«ããããS3ã¯ãã¡ã€ã«ã確å®ã«åæããŸãã ãã ããçŽ1幎åã«å€æŽããããã¡ã€ã«ãããã€ãããããããã¯ç°ãªã£ãŠããŠãåæãŸãã¯æŽæ°ãããªãããšã«æ°ä»ããŸããã
éä¿¡å ãšå®å ã®äž¡æ¹ã®ã¿ã€ã ã¹ã¿ã³ããç°ãªããŸãããåæã¯è¡ãããŸããã S3ã«ã¯ææ°ã®ãã¡ã€ã«ããããŸãã
ã³ãã³ãã¯æ¬¡ã®ãšããã§ã
aws s3 s3ïŒ// source / local-folder --delete
åæãããªããã¹ãŠã®ãã¡ã€ã«ã®æ¥ä»ã¯åãã§ãããè€æ°ã®ç°ãªããã©ã«ããŒã«åæ£ããŠããŸãã
ã¿ã€ã ã¹ã¿ã³ããå€æŽãããã¡ã€ã«ãå床åæãããããã®S3 touchã³ãã³ãã¯ãããŸããïŒ
--exact-timestamps
ã䜿çšããŠãããåé¿ã§ããå¯èœæ§ããããŸãããã¢ããããŒãããŠããå Žåã¯éå°ãªã¢ããããŒããçºçããå¯èœæ§ããããŸãã
åçŸã«åœ¹ç«ãŠãããã«ãåæããŠããªããã¡ã€ã«ã®1ã€ã«é¢ããæ å ±ãæããŠãã ããã
ã³ãã³ãå®è¡ã®äŸ
aws s3 sync s3ïŒ// bucket / / var / www / folder / --delete
ããã€ãã®ãã¡ã€ã«ããããŸãã
æ£ç¢ºãªããŒã«ã«ãµã€ãºïŒ2625
æ£ç¢ºãªs3ïŒ2625
ããŒã«ã«ã®æ£ç¢ºãªã¿ã€ã ã¹ã¿ã³ãïŒ2017幎1æ6æ¥9:32:31
æ£ç¢ºãªã¿ã€ã ã¹ã¿ã³ãs3ïŒ2017幎6æ20æ¥10:14:57
S3ããã³ããŒã«ã«ã®éåžžã®ãã¡ã€ã«
çŽ50,000åã®ãã¡ã€ã«ã®ãªã¹ãã«ãã®ãããªã±ãŒã¹ãããã€ããããŸãã ãã ããåæãããŠããªããã®ã¯ãã¹ãŠã2017幎6æ20æ¥ã®ããŸããŸãªæç¹ã§ãã
--exact-timestampsã䜿çšãããšããŸã£ããåãå 容ã§ãããããŠã³ããŒããããã¡ã€ã«ãã¯ããã«å€ããªããŸãã ãã ããäžèšã®äŸã§ã¯ãŸã æ¬ èœããŠããŸãã
ããã§åãåé¡ã
aws s3 sync dist/ s3://bucket --delete
ã¯dist / index.htmlã§s3ïŒ//bucket/index.htmlãã¢ããããŒãããŸãã
dist / index.htmlãšs3ïŒ//bucket/index.htmlã®ãã¡ã€ã«ãµã€ãºã¯åãã§ãããå€æŽæéã¯ç°ãªããŸãã
å®éãawscliããã¡ã€ã«ãã¢ããããŒãããå Žåãããã°ãã¢ããããŒãããªãã£ãå ŽåããããŸãã
ããã§ãåãã§ããã --exact-timestamps
ã¯åœ¹ã«ç«ã¡ãŸãã- index.html
ã¯äžæžããããŸããã
ãã®åé¡ã¯ä»æ¥/å é±ã¯é 調ã§ããã ããã§ããindex.htmlã¯åããã¡ã€ã«ãµã€ãºã§ãããå 容ãšå€æŽæå»ãç°ãªããŸãã
誰ããããã®åé¿çãç¥ã£ãŠããŸããïŒ
ç§ã¯ã¡ããã©ããã«ééããŸããã @icymindãš@samdammersã«ãã£ãŠå ±åãããã®ãšåãåé¡ïŒç§ã®ïŒããŒã«ã«ïŒ index.html
ãã¡ã€ã«ã®å
容ãå€æŽãããŸãããããã®ãã¡ã€ã«ãµã€ãºã¯S3ã®ä»¥åã®ã³ããŒãšåãã§ããã {{aws s3sync}}ã³ãã³ãã¯ã¢ããããŒãããŸããã§ããã ç§ã®ãåé¿çãã¯ã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ã®ãã¡ã€ã«ã倱ããŸããã Syncã¯ãç¹æ®æåãå«ããã¡ã€ã«ããŸã£ããã³ããŒããŸããã§ããã
ãã¡ã€ã«ã®äŸ/data/company/storage/projects/1013815/3.Company Estimates/B. Estimates
cp -R -n
ã䜿çšããå¿
èŠããããŸãã
åãåé¡ãããã«ãããŸãåããµã€ãºã§ç°ãªãã¿ã€ã ã¹ã¿ã³ãã®xmlãã¡ã€ã«ãæ£ããåæãããŠããŸãã
ãã®åé¡ãåçŸããããšãã§ããŸãã
bug.tar.gz
æ·»ä»ã®tarãã¡ã€ã«ãããŠã³ããŒãããŠãã
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ãåæããããšããŠãäœãèµ·ãããŸãã
ãã¹ãæžã¿
aws-cli / 1.16.88 Python / 2.7.15 Darwin / 16.7.0 botocore / 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
åãåé¡ãçºçããŠããŸãã 1ã€ã®ãã¡ã€ã«ãããŒã«ã«ãã£ã¬ã¯ããªã«æŽæ°ãããs3ãããã¡ã€ã«ã®ãã£ã¬ã¯ããªãåæããããšããŠããŸãã ãã®ãã¡ã€ã«ã¯ããŒã«ã«ãã£ã¬ã¯ããªã§æŽæ°ãããŸãã
ç§ããããèŠãŠããŸãã ç§ã®å Žåãçæããã.jsãã¡ã€ã«ãåç §ããindex.htmlã䜿çšããreactã¢ããªã§ãã --deleteãªãã·ã§ã³ãšåæããŠãåç §ãããªããªã£ãå€ããã¡ã€ã«ãåé€ããŸãã index.htmlãã¢ããããŒããããªãããšãããããã®çµæãååšããªããªã£ã.jsãã¡ã€ã«ãæãå€ãindex.htmlãçæãããŸãã
ãããã£ãŠãç§ã®ãŠã§ããµã€ãã¯æ©èœããªããªããŸã!!!
ç§ã¯çŸåšããªããããèµ·ãã£ãŠããã®ãã«ã€ããŠç¡ç¥ã§ãã
誰ããäœãã¢ã€ãã¢ãåé¿çãæã£ãŠããŸããïŒ
åãåé¡ããããŸãããåé¿çãèŠã€ãããŸããã ç§ã¯ç¥ã£ãŠããŸããããã¯æåã®æ¹æ³ã§ã¯ãããŸããããããã¯æ©èœããŸãïŒ
aws s3 cp s3://SRC s3://DEST ...
aws s3 sync s3://SRC s3://DEST ... --delete
ã³ããŒã¯æ£åžžã«æ©èœããŠããããã«æãããã®ã§ãæåã«ã³ããŒããŠãããsyncã³ãã³ãã䜿çšããŠãååšããªããªã£ããã¡ã€ã«ãåé€ããŸãã
åé¡ãã§ããã ãæ©ãä¿®æ£ãããããšãé¡ã£ãŠããŸãã
ãã€ãã©ã€ã³ã«--exact-timestamps
ãè¿œå ããŸããããåé¡ã¯åçºããŠããŸããã ããããããããæç¶çã ã£ãã®ã§ãçŽã£ããã©ããã¯ããããŸããã ãããåã³èµ·ãããªãã°ãç§ã¯@ marns93ã®ææ¡ã§è¡ããŸãã
ãã®åé¡ã¯çºçãã --exact-timestamps
åé¡ã解決ããŸããã ããããŸã£ããåãåé¡ã§ãããã©ããã¯ããããŸããã
ãã®åé¡ãçºçããŠããŸãããååŒã³åºãã§ã³ããŒããå¿ èŠãããã®ã¯ã»ãã®äžæ¡ãïŒ1ããŒã¹æªæºïŒã®ãã¡ã€ã«ã§ãããããéåžžã«æçœã§ãã
ãããçºçããç¶æ³ã¯ãäžèšã§å ±åããããã®ãšåãã§ãsync
ç·šéãããŠãããã©ã«ããŒã«ããã¡ã€ã«ã®å
容ãç°ãªãããã¡ã€ã«ãµã€ãºãåããã¡ã€ã«ãå«ãŸããŠããå Žåã sync
ã¯æ°ããæŽæ°ããããã¡ã€ã«ã®ã³ããŒãã¹ãããããŸãã S3ã
ã¹ã¯ãªããã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ã®HTMLãã¡ã€ã«ããããŸããããã«ã1ã«ãã£ãŠs3ã«ã¢ããããŒããããHTMLãã¡ã€ã«ã®ã¿ã€ã ã¹ã¿ã³ãã¯10:06ã§ããããã¯ããªããžã§ã¯ããäœæããããšãã®ããšã§ãã ããã«ããããªã¢ãŒããã¡ã€ã«ã¯ããŒã«ã«ãã¡ã€ã«ããããæ°ããããããs3åæã§ã¯ç¡èŠãããŸãã
以åã«ææ¡ããããã«ãçŸåšs3 cp --recursive
ã«s3 sync --delete
ã䜿çšããŠããŸãã
ããã誰ãã«åœ¹ç«ã€ããšãé¡ã£ãŠããŸãã
ä»é±åãã«åãåé¡ãçºçããŸããã --size-only
ã䜿çšããŠããŸãã.
ã¯#
ïŒããµã€ãºã¯åãã§ããããs3ã®ã¿ã€ã ã¹ã¿ã³ãã¯æ°ããã€ã³ããã¯ã¹ã®ã¿ã€ã ã¹ã¿ã³ããã40åæ©ãã£ãã§ãã .htmlã äžæçãªåé¿çãšããŠindex.htmlãåé€ããŸãããããã¹ãŠã®ãããã€ã¡ã³ããå確èªããããšã¯äžå¯èœã§ãã
ããã§ãåãã§ãããåãååã§ã¿ã€ã ã¹ã¿ã³ããšã³ã³ãã³ããç°ãªããã¡ã€ã«ã¯S3ããããŒã«ã«ã«åæãããã-deleteã¯åœ¹ã«ç«ã¡ãŸãã
åãåé¡ãçºçããŸãã åããµã€ãºã§ã¿ã€ã ã¹ã¿ã³ããæ°ããindex.htmlã¯ã³ããŒãããŸããã
ãã®åé¡ã¯1幎以äžåã«å ±åãããŸããã ãªãä¿®æ£ãããªãã®ã§ããïŒ
å®éã«ã¯ãsnycã³ãã³ãã¯åœ¹ã«ç«ããªããªããŸãã
æ£ç¢ºãªæé
--exact-timestampsã§åé¡ãä¿®æ£ãããŸãã
ç§ããã®åé¡ã®åœ±é¿ãåããŠããŸãã --exact-timestampsãè¿œå ããŸãããããã®åé¡ã«ãããæ¢ããŠãããã¡ã€ã«ãä¿®æ£ãããããã§ãã ç§ã¯åŸ¹åºçãªæ€çŽ¢ãããŠããŸããã ç§ã¯100kãã¡ã€ã«ãš20GBã®ãªãŒããŒã§ãããã«ããä»ã®ãã¡ã€ã«ãããã¯ããã«å°ãªãã§ãã
åãåé¡ã«çŽé¢ããŸãããå
容ãæ¥ä»ãç°ãªã£ãŠããŠãã aws s3 sync
äžéšã®ãã¡ã€ã«ãã¹ãããããŸãã ãã°ã«ã¯ãã¹ãããããããã¡ã€ã«ãåæãããŠããããå®éã«ã¯åæãããŠããªãããšã瀺ãããŠããŸãã
ãããã aws s3 sync
å床å®è¡ãããšããããã®ãã¡ã€ã«ãåæãããŸããã ãšãŠãå€ã ïŒ
Hugoã§ãµã€ããæ§ç¯ãããšãã«ãã®åé¡ãçºçããã€ãã«ãããç解ããŸããã ç§ã¯HugoããŒãã«ãµãã¢ãžã¥ãŒã«ã䜿çšããŠãããCIã§ãããããã«ããŠã³ããŠããŸããã§ããã ããã¯Hugoã§èŠåãåŒãèµ·ãããŠããŸãããã倱æã¯åŒãèµ·ãããŠããŸããã§ããã
# 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ã®æå³ããããŸãã
å°æ¥ã®Google瀟å¡ã®ããã«ãç§ãåŸãŠããç·šéæžã¿ã®ãšã©ãŒïŒ
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
ãã®ãã±ããããããªã«é·ãéããŠãããªããŠä¿¡ããããŸãã...åãåé¡ãããã«ãããŸããAmazonã®é¡§å®¢ã®å·çã¯ã©ãã«ãããŸããïŒ
ãã®ãã±ãããå°ãåã«éããããŠããªãã£ããªããŠä¿¡ããããŸããã ç§ã®ç¥ãéããããã¯èšèšã©ããã«æ©èœããŸããããŠãŒã¶ãŒïŒç§ãå«ãïŒã¯ãããã©ã®ããã«æ©èœãããã«ã€ããŠæšæž¬ããæåŸ ã©ããã«åäœããªããšé©ããŠããŸãã
--exact-timestamps
_only_ã®äœ¿çšçµè«ãšããŠã¯ãæå³ãããšããã«æ©èœãããšããããšã§ããããããæãŸãããªãããŸããŸãªãŠãŒã¹ã±ãŒã¹ããããŸãã äžã§è¿°ã¹ãs3 cp --recursive
ã䜿çšããŠãããåé¿ããŸãã
@ jam13説æã«æè¬ããŸããä»ã§ã¯ãã¹ãŠãåŸç¥æµã§çã«ããªã£ãŠããŸãïŒ
ããã«ãããããããç§ã¯ãããçŸåšååã«ææžåãããŠããªãããšã䞻匵ããŸãïŒ --exact-timestamps
ã¯_s3ããlocal_ãŸã§ã®ã¿æ©èœããs3 cliã¯ãµã€ã¬ã³ãã§ã¯ãªãåã«ãã€ã«ã¢ãŠãããããšã瀺ããããã¥ã¡ã³ãã®çã£èµ€ãªèŠåãæåŸ
ããŠããŸãããã©ã¡ãŒã¿ãç¡èŠããŠïŒããªãã·ã§ã³ã®ããã·ã¥ããŒã¹ã®æ¯èŒã¢ãŒãã¯ã確å®ã«æ©èœããåæã¢ãŒããå®è£
ããããã«å¿
èŠã§ãã
ã¯ããããã¥ã¡ã³ãã¯çŽ æŽããããã®ã§ã¯ãªãããªãã·ã§ã³ãé»ã£ãŠç¡èŠããããšã¯éåžžã«åœ¹ã«ç«ã¡ãŸããã éå»2幎éã«AWSããã®ãã®ãã±ããã«é¢ãã管çè ã®äžåšããŸãã¯å ¬åŒã®ã³ã¡ã³ãããããããªã¥ãŒã ãç©èªã£ãŠããŸãã
@ jam13ããã€ãã®ããã¥ã¡ã³ãã
@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ãšããŠä¿åããŸãã åé¡ã¯ãETagããã£ã³ã¯ã®æ°ãšãã¡ã€ã«ã®ã¢ããããŒãæã«äœ¿çšããããã£ã³ã¯ãµã€ãºã«äŸåããããšã§ãã ã¢ããããŒããŒã§ãªãå Žåã¯ããã£ã³ã¯ãµã€ãºãããããªãå¯èœæ§ããããŸãïŒãã ããETagãããã£ã³ã¯ã®æ°ãååŸã§ããŸãïŒã ãªããã®ããã«è¡ãããã®ãããããŸããã
ããã¯ããããæå³ãããšããã«æ©èœããŠããŸãããæåŸ ã©ããã«æ©èœããŠããŸããã ãã¡ã€ã«ãå€æŽããããã©ããã確èªããã®ã¯ç°¡åãªã¯ãã§ã
人ã
ãäºæããåæããŠããªãããšãçµéšããããšã¯ããã ã®å€§ããªèœãšãç©Žã§ã
ããŒã¿ã ããã«ãããã¹ãŠã®äººãæãããšãã§ãã100ã®ç°ãªãåé¿çããããŸã
ãã®ãã±ãããèªãã æéãšããããçºèŠããã®ã«è²»ãããæé
圌ãã®ãœãŒã¹ã³ãŒãã®åé¡ã§ããã ãªã圌ãã¯ãããã®1ã€ãè¡ãããšãã§ããªãã®ã§ããïŒ
2020幎4æ14æ¥ç«ææ¥ååŸ1æ57åããŒã¹ã±ãªãŒ[email protected]
æžããŸããïŒ
ãã®ãã±ãããå°ãåã«éããããŠããªãã£ããªããŠä¿¡ããããŸããã ç§ãã§ããéã
æããŠãã ãããããã¯èšèšã©ããã«æ©èœããŸããããŠãŒã¶ãŒïŒç§ãå«ãïŒã¯
ãããã©ã®ããã«æ©èœããã¹ããããããŠããã圌ãã®ããã«æ¯ãèããªããšãã«é©ãããã
æåŸ ãããã
ãã¡ã€ã«ãs3ã«åæãŸãã¯ã³ããŒããããšããã±ããã§åä¿¡ããã¿ã€ã ã¹ã¿ã³ãã¯ã³ããŒãããæ¥ä»ã§ããããœãŒã¹ãã¡ã€ã«ã®æ¥ä»ãããåžžã«æ°ããæ¥ä»ã§ãã ãããs3ã®ä»çµã¿ã§ãã
ãµã€ãºãå€æŽãããå ŽåããŸãã¯ã¿ãŒã²ããã®ã¿ã€ã ã¹ã¿ã³ãããœãŒã¹ããã_å€ã_å Žåã«ã®ã¿ããã¡ã€ã«ãåæãããŸãã
ã€ãŸãããœãŒã¹ãã¡ã€ã«ãæŽæ°ãããŠããã¡ã€ã«ã®ãµã€ãºãå€æŽããããå€æŽããããã¡ã€ã«ã®æ¥ä»ãæåŸã«ã³ããŒãããæ¥ä»ãããåã®å Žåãs3syncã¯ããããå床åæããŸããã
--exact-timestamps
_only_ã®äœ¿çšs3ãã¢ããããŒãããããã¡ã€ã«ã®ããã·ã¥ãèšç®ãããšã¯æããªãã®ã§ããã¡ã€ã«ãµã€ãºãšæåŸã«ã¢ããããŒããããæ¥ä»ããã§ãã¯ãšããŠåé¿ããæ¹æ³ã¯ãããŸããã
çµè«ãšããŠã¯ãæå³ãããšããã«æ©èœããŸãããããŸããŸãªãŠãŒã¹ã±ãŒã¹ããããŸã
ãããæãŸãããªãå Žåã äžèšã®ããã«
<ïŒm_8540343689970969812_issuecomment-534061850>åé¿ããŸãã
s3cpã䜿çšãã--recursives3ã¯ãªããžã§ã¯ããããã·ã¥ããŸãããå®å šã«ç解ã§ããæ¹æ³ã§ã¯ãããŸãã
https://teppen.io/2018/10/23/aws_s3_verify_etags/ ãããã次ã®ããã«ä¿åããŸã
ããªãã¿ã®ETaghttps ïŒ//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
äž¡æ¹ã«åé¡ããããŸããã
ããã§ãã¹ãŠè§£æ±ºããŸããã ããŸãããã¯ãã®2ã€ã®ã¢ã¯ã·ã§ã³ããããŸããããããŸããããŸããã§ããã ãããè©ŠããŠã¿ãŠããããããªãã®åé¡ã解決ãããã©ããç§ã«ç¥ãããŠãã ããã
ããã§ãã£ã€ã ã鳎ãããŠãç§ãsync
åé¡ãæ±ããŠãããšèšããŸãã ç§ãæ°ä»ããå¯äžã®çç±ã¯ã䞡端ã®MHLãå°å°ããŠæ€èšŒããŠããããã§ãã sync
ã¯æ©èœããã890GBã®ãã¡çŽ60GBãäžè¶³ããŠããŠããã©ã«ããŒããšã«èª¿ã¹ãããšããŸããã 次ã«ããã®ã¹ã¬ãããèŠã€ããŠcp --recursive
ãè©ŠãããšãããããŒã¿ãåã³æµãå§ããŸããã ãã®ããŒã¿ã®æ®ããååŸããããæåŸã«ããäžåºŠMHLãæ€èšŒããŸãã
åé¡ãåçŸããããã®ã¹ã¯ãªãããäœæããŸããã次ã䜿çšããŸãã
aws-cli / 1.18.34 Python / 2.7.17 Darwin / 19.4.0 botocore / 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 syncã¯ãã¡ã€ã«ãããŠã³ããŒãããªããããåã«ã¿ã€ã ãŸãŒã³ã®åé¡ã§ã¯ãããŸããã
å€æŽæå»ãçŸåšã«å€æŽãããšïŒããŒã«ã«ãã¡ã€ã«ããªã¢ãŒããããæ°ããããïŒãs3syncã¯ãã¡ã€ã«ãããŠã³ããŒãããŸãã
ç§ã¯ãããç解ã§ããªãã£ãã®ã§ãããã¥ã¡ã³ãããã§ãã¯ããŸããããã®ç¶æ
ã¯ïŒ --exact-timestamps
ãªãã·ã§ã³ã説æãããšãïŒïŒ
ããã©ã«ãã®åäœã§ã¯ãããŒã«ã«ããŒãžã§ã³ãS3ããŒãžã§ã³ããã
ããŠã³ããŒãã«--exact-timestamps
ã䜿çšãããšãæåŸ
ã©ããã«æ©èœããŸãïŒã¿ã€ã ã¹ã¿ã³ãã«éãããããšã³ããŒã«ãªããŸãïŒãããã®ããã©ã«ãã¯ç§ã«ã¯éã«æããŸãã
ãèšèšã©ããã«æ©èœããããšèšã代ããã«ããææžåããããšããã«æ©èœããããšèšãã¹ãã ã£ãã®ãããããŸããã
@ jam13ãããŒãããã¯ãšãŠãå¥åŠã§ãããããŠç§ã¯ãããããã¥ã¡ã³ããŒã·ã§ã³ã®æ··ä¹±ã ãšæããŸããïŒ
ããããããããã°ãä¿®æ£ããæ°ããæ¹æ³ã§ããå Žåã¯ãããã¥ã¡ã³ãã«æ瀺çã«é
眮ããã ãã§ã...
@ jam13
ã¿ã€ã ãŸãŒã³ã®åé¡ãé€å€ã§ãããã©ããã¯ããããŸããã
æ¯æ¥ãs3ã³ã³ãœãŒã«ã§æåã®å€æŽãè¡ãã aws s3 sync s3://$BUCKET .
ãåæãããšãåæãããŸãã ãã¡ã€ã«ã«å¥ã®å€æŽãå ããŠããåæãããšãåæãããŸããã
ããããããã¯ç¿æ¥æ©èœããŸãã
ããã¯ãã¿ã€ã ãŸãŒã³ãåå ã§ããå¯èœæ§ããããã©ãããåèãããŸãã
ããã§ãããªããäžã§è¿°ã¹ãtouch -m
ã³ãã³ãã«ã€ããŠããå°ããã§ãã¯ããŸããã
touch -m -t 201901010000 test/local/test.json
ãã¡ã€ã«ã®å€æŽæå»ãæšå¹Žã«å€æŽããŠããs3 syncã¯ãã¡ã€ã«ãããŠã³ããŒãããªããããåã«ã¿ã€ã ãŸãŒã³ã®åé¡ã§ã¯ãããŸããã
äžèšã®touchã³ãã³ãã¯ãmtimeãããã®ãŒãã ãã§ãã 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 cp --recursive
ã䜿çšããŠãããåé¿ããŸãã