feat: データ登録処理 初期処理内のresourceインタフェースをクライアントインタフェースに変更

This commit is contained in:
shimoda.m@nds-tyo.co.jp 2023-01-27 16:10:27 +09:00
parent d46cbe1e95
commit 1a1499a189

View File

@ -1,12 +1,12 @@
from datetime import datetime
import boto3
import io
import csv
import io
import re
import sys
from error import error
from error import error_doing_file_exists
from datetime import datetime
import boto3
from common import debug_log
from error import error, error_doing_file_exists
# 定数
LOG_LEVEL = {"i": 'Info', "e": 'Error'}
@ -17,7 +17,6 @@ DIRECTORY_SETTINGS = '/settings/'
# クラス変数
s3_client = boto3.client('s3')
s3_resource = boto3.resource('s3')
def init(bucket_name, target_key, target_data_source, target_file_name, log_info, mode):
@ -60,8 +59,7 @@ def init(bucket_name, target_key, target_data_source, target_file_name, log_info
try:
# ③ S3バケット内のtargetディレクトリに、「投入データファイル名.doing」ファイルを作成する
doing_obj = s3_resource.Object(bucket_name, doing_key)
doing_obj.put(Body='')
s3_client.put_object(Bucket=bucket_name, Key=doing_key, Body=b'')
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-INI-04 - targetディレクトリに {doing_file_name} を作成しました')
# ④ 投入データファイルをS3バケット内のtargetディレクトリから、workディレクトリに移動(コピー削除)する
@ -70,8 +68,7 @@ def init(bucket_name, target_key, target_data_source, target_file_name, log_info
'Key': target_key
}
work_key = target_data_source + DIRECTORY_WORK + target_file_name
work_obj = s3_resource.Object(bucket_name, work_key)
work_obj.copy(copy_source)
s3_client.copy(CopySource=copy_source, Bucket=bucket_name, Key=work_key)
s3_client.delete_object(Bucket=bucket_name, Key=target_key)
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-INI-05 - 投入データ {target_file_name} をworkディレクトリに移動しました')
except Exception as e:
@ -122,9 +119,8 @@ def init(bucket_name, target_key, target_data_source, target_file_name, log_info
try:
# ⑦ 個別設定ファイルを特定する
print(f'{datetime.now():%Y-%m-%d %H:%M:%S} {log_info} {LOG_LEVEL["i"]} I-INI-17 - 個別設定ファイルを検索します')
mapping_obj = s3_resource.Object(bucket_name, mapping_key)
mapping_response = mapping_obj.get()
mapping_body = io.TextIOWrapper(io.BytesIO(mapping_response["Body"].read()), encoding='utf-8')
mapping_obj_response = s3_client.get_object(Bucket=bucket_name, Key=mapping_key)
mapping_body = io.TextIOWrapper(io.BytesIO(mapping_obj_response["Body"].read()), encoding='utf-8')
settings_file_name = ''
for row in csv.reader(mapping_body, delimiter='\t'):
if row: