-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathaws_backend.py
More file actions
62 lines (49 loc) · 1.76 KB
/
aws_backend.py
File metadata and controls
62 lines (49 loc) · 1.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import json
import boto3
from io import BytesIO
data0 = "{{ItascaCodeClientAccessKey}}"
data1 = "{{ItascaCodeClientSecretKey}}"
DataBucketName = "{{DataBucketName}}"
QueueURL = "{{QueueURL}}"
region = "{{region}}"
sqs = boto3.resource('sqs',
aws_access_key_id=data0,
aws_secret_access_key=data1,
region_name=region)
queue = sqs.Queue(QueueURL)
s3 = boto3.client('s3',
aws_access_key_id=data0,
aws_secret_access_key=data1,
region_name=region)
def delete_s3_file(file_name):
s3.delete_object(Bucket=DataBucketName, Key=file_name)
def put_file_on_s3(file_name):
s3.upload_file(file_name, DataBucketName, file_name)
def put_text_on_s3(data, object_name):
s3.upload_fileobj(data, DataBucketName, object_name)
def put_JSON_on_s3(data, object_name):
put_text_on_s3(BytesIO(json.dumps(data, indent=2).encode()), object_name)
def get_text_from_s3(object_name):
with BytesIO() as f:
s3.download_fileobj(DataBucketName, object_name, f)
f.seek(0)
return f.read().decode()
def get_JSON_from_s3(object_name):
return json.loads(get_text_from_s3(object_name))
def get_message():
messages = queue.receive_messages(MaxNumberOfMessages=1,
VisibilityTimeout=10,
WaitTimeSeconds=0)
if len(messages)==1:
message = messages[0]
return message
else:
return None
def get_messages(n):
messages = queue.receive_messages(MaxNumberOfMessages=n,
VisibilityTimeout=10,
WaitTimeSeconds=0)
if len(messages)>0:
return messages
else:
return None