質問編集履歴

3

ソースコードの追記

2019/11/11 05:41

投稿

skyhigh
skyhigh

スコア12

test CHANGED
File without changes
test CHANGED
@@ -4,7 +4,11 @@
4
4
 
5
5
 
6
6
 
7
- 「S3 バケット1にファイルを追加したらS3 バケット2に同じファイルのzipファイルを渡す」ということがしたく、Lambdaにてソースコードを書いたのですが、下記のエラーメッセージが返ってきました。
7
+ 「S3 バケット1にファイルを追加したらS3 バケット2に同じファイルのzipファイルを渡す」ということがしたく、pyminizipをこのように配置し、Lambdaにてソースコードを書いたのですが、下記のエラーメッセージが返ってきました。
8
+
9
+
10
+
11
+ pyminizipを配置しているのにこのようなエラーが出る原因が分かりません。ご教授お願いします。
8
12
 
9
13
 
10
14
 
@@ -15,8 +19,6 @@
15
19
 
16
20
 
17
21
 
18
-
19
- 解決方法を調べたのですが載っていませんでした。解決方法をご教授ください
20
22
 
21
23
 
22
24
 
@@ -85,3 +87,11 @@
85
87
  os.unlink(zipname)
86
88
 
87
89
  ```
90
+
91
+
92
+
93
+
94
+
95
+
96
+
97
+ ![イメージ説明](c0281b8d332db179c16bee39e890cc2f.png)

2

ソースコードの追記

2019/11/11 05:41

投稿

skyhigh
skyhigh

スコア12

test CHANGED
File without changes
test CHANGED
@@ -34,56 +34,54 @@
34
34
 
35
35
 
36
36
 
37
+ def lambda_handler(event, context):
37
38
 
39
+ s3=boto3.resource('s3')
38
40
 
39
- filename = 'myface.png'
41
+ for rec in event['Records']:
40
42
 
41
- s3 = boto3.resource('s3')
43
+ filename = rec['s3']['object']['key']
42
44
 
45
+ obj = s3.Object(rec['s3']['bucket']['name'],filename)
43
46
 
47
+ response = obj.get()
44
48
 
49
+ tmpdir = tempfile.TemporaryDirectory()
45
50
 
51
+ fp = open(tmpdir.name + '/' + filename,'wb')
46
52
 
47
- obj = s3.Object(rec['s3']['bucket']['name'],filename)
53
+ fp.write(response['Body'].read())
48
54
 
49
- response = obj.get()
55
+ fp.close();
50
56
 
51
- tmpdir = tempfile.TemporaryDirectory()
57
+
52
58
 
53
- fp = open(tmpdir.name + '/' + filename,'wb')
59
+ #暗号化
54
60
 
55
- fp.write(response['Body'].read())
61
+ zipname = tempfile.mkstemp(suffix='.zip')[1]
56
62
 
57
- fp.close();
63
+ os.chdir(tmpdir.name)
58
64
 
65
+ pyminizip.compress(filename,zipname,'mypassword',0)
59
66
 
67
+
60
68
 
61
- #暗号化
69
+ #S3にアップロード
62
70
 
63
- zipname = tempfile.mkstemp(suffix='.zip')[1]
71
+
64
72
 
65
- os.chdir(tmpdir.name)
73
+ obj = s3.Object('tgztest2',filename+'zip')
66
74
 
67
- pyminizip.compress(filename,zipname,'mypassword',0)
75
+ response=obj.put(
68
76
 
77
+ Body=open(zipname,'rb')
69
78
 
79
+ )
70
80
 
71
- #S3にアップロード
81
+
72
82
 
83
+ tmpdir.cleanup()
73
84
 
74
-
75
- obj = s3.Object('examplewrite1234',filename+'zip')
76
-
77
- response=obj.put(
78
-
79
- Body=open(zipname,'rb')
80
-
81
- )
82
-
83
-
84
-
85
- tmpdir.cleanup()
86
-
87
- os.unlink(zipname)
85
+ os.unlink(zipname)
88
86
 
89
87
  ```

1

ソースコードの追記

2019/11/11 05:37

投稿

skyhigh
skyhigh

スコア12

test CHANGED
File without changes
test CHANGED
@@ -17,3 +17,73 @@
17
17
 
18
18
 
19
19
  解決方法を調べたのですが載っていませんでした。解決方法をご教授ください
20
+
21
+
22
+
23
+
24
+
25
+ ```ここに言語を入力
26
+
27
+ import boto3
28
+
29
+ import pyminizip
30
+
31
+ import tempfile
32
+
33
+ import os
34
+
35
+
36
+
37
+
38
+
39
+ filename = 'myface.png'
40
+
41
+ s3 = boto3.resource('s3')
42
+
43
+
44
+
45
+
46
+
47
+ obj = s3.Object(rec['s3']['bucket']['name'],filename)
48
+
49
+ response = obj.get()
50
+
51
+ tmpdir = tempfile.TemporaryDirectory()
52
+
53
+ fp = open(tmpdir.name + '/' + filename,'wb')
54
+
55
+ fp.write(response['Body'].read())
56
+
57
+ fp.close();
58
+
59
+
60
+
61
+ #暗号化
62
+
63
+ zipname = tempfile.mkstemp(suffix='.zip')[1]
64
+
65
+ os.chdir(tmpdir.name)
66
+
67
+ pyminizip.compress(filename,zipname,'mypassword',0)
68
+
69
+
70
+
71
+ #S3にアップロード
72
+
73
+
74
+
75
+ obj = s3.Object('examplewrite1234',filename+'zip')
76
+
77
+ response=obj.put(
78
+
79
+ Body=open(zipname,'rb')
80
+
81
+ )
82
+
83
+
84
+
85
+ tmpdir.cleanup()
86
+
87
+ os.unlink(zipname)
88
+
89
+ ```