teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2019/01/11 04:54

投稿

moonphase
moonphase

スコア6621

answer CHANGED
@@ -4,4 +4,33 @@
4
4
 
5
5
  これを利用することにより、S3へファイルをアップロードするタイミングで`ファイルの中身`についての検証は可能となります。
6
6
  ファイルリストそのものが正しいかどうかは、同期時に全てがエラーとならなければOKです。
7
- 同期する大元が何個あるかはご自身で把握されていますよね?
7
+ 同期する大元が何個あるかはご自身で把握されていますよね?
8
+
9
+ 実装イメージ(アップロードするときに検証)
10
+
11
+ ```
12
+ #!/bin/sh
13
+
14
+ SRC_DIR=./local
15
+ BUCKET=hogehoge
16
+
17
+ LIST=`find "${SRC_DIR}" -type f -print`
18
+
19
+ S3API_ST=0
20
+ for i in $LIST
21
+ do
22
+ MD5=`openssl dgst -md5 -binary $i | openssl enc -base64`
23
+ ETAG=`aws s3api put-object --bucket ${BUCKET} --key $i --content-md5 $MD5 --body $i | jq -r '.ETag' | sed 's/"//g`
24
+ if [ $S3API_ST -eq 0 -a "${ETAG}" = "" ]
25
+ then
26
+ S3API_ST=1
27
+ fi
28
+ done
29
+
30
+ if [ $S3API_ST -eq 0 ]
31
+ then
32
+ echo "OK"
33
+ else
34
+ echo "ERR"
35
+ fi
36
+ ```