6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

s3cmdでS3に差分だけアップする

Last updated at Posted at 2018-03-30

動的ファイル以外を基本的にS3で管理することになったので覚書。
※AWS CLIのほうが転送速度が速い。どうしてもs3cmd使いたいなら。

####s3cmdをインストール

yum -y --enablerepo epel install s3cmd

####AWSアクセスキーの取得
AWSマネージメントコンソールのIAMの認証情報からアクセスキーを作成、取得する。

####s3cmdでアクセスキーとシークレットアクセスキーの設定


$ s3cmd --configure
Access Key: aaabbbccc
Secret Key: dddeeefff

※サーバーのユーザ単位でconfigは作られるので実際にshellを実行するユーザで作る。
その後の質問については無視しても問題ない。細かい調整もできる。

####ためしにS3バケットが取得できるかテスト

$ s3cmd ls
2018-02-08 02:52  s3://aaa
2018-02-08 02:55  s3://bbb

####shellスクリプト準備


#!/bin/sh

s3cmd sync --dry-run --no-preserve --no-check-md5 --no-mime-magic --guess-mime-type --acl-public --encoding=utf-8 --exclude-from=[exclude-file-path] [from-path] s3://aaa/

answer=$1

if [ "$answer" = "-y" ]; then
    answer="y"
else
    echo -n "are you sure you wanna release S3? [y/n]"
    read answer
fi

if [ "$answer" = "y" ]; then
    s3cmd sync --no-preserve --no-check-md5 --no-mime-magic --guess-mime-type --acl-public --encoding=utf-8 --exclude-from=[exclude-file-path] [from-path] s3://aaa/
fi

上記はfrom-pathからバケットaaaに対し、exclude-file-pathのファイルを除外しつつ、syncする例。
はじめにdry-runが走るので、アップされる予定のファイル一覧が表示される。

####実行

$ /bin/bash deploy_s3.sh 
exclude: index.php
exclude: bbb.html
upload: aaa.html
are you sure you wanna release S3? [y/n]

除外されるファイルはexcludeというprefixが付く。
ここでyを選択すると想いがS3に届くよ。

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?